32

ASP.NET MVC アプリケーションを発行すると、app_offline.htm ファイルが生成され、Web サイトの更新中にサイトがオフラインになり、発行が成功するとファイルが削除されます。

これは素晴らしいアイデアで、とても気に入っていますが、発行アクションが認識できる独自のカスタム app_offline.htm ファイルを作成し、開発サイトに影響を与えない場所 (つまり、存在しない場所) に配置したいと考えています。私の開発サイトのルートは常にオフラインでレンダリングされます。

編集: app_offline.htm に関するScott Gu の投稿のコメントから、 app_offline.htm ファイルのカスタマイズは VS 2005 では不可能だったようです - これは VS 2008 と現在の VS 2010 で変更されましたか?

4

9 に答える 9

28

これは古いことは知っていますが、ここを見て解決策を見つけたので、答えを提供する必要があると思いました。VS 11 は、発行app_offline.htmファイルを次の場所に保持します。

C:\Users\[user]\AppData\Roaming\Microsoft\VisualStudio\11.0\app_offline.htm

これをテストしてカスタマイズしましたが、このファイルを変更すると機能します。もちろん、欠点は、これがすべての Web パブリッシングに使用されるファイルであることです。

于 2011-11-18T14:10:33.203 に答える
17

多くの人が適切だと思う簡単な解決策は、ソリューションに同じ名前の独自のファイルを追加すること"app_offline.htm"です。

Visual Studio 2015 を使用してこの方法をテストしましたが、実際に機能します。

ただし、唯一の欠点は、発行プロセス中に、デフォルトで生成されたファイルが最初app_offline.htmにコピーされ、次にソリューション ファイルがアルファベット順またはほぼアルファベット順にコピーされることです。

これは、カスタムapp_offline.htmファイルがシステムで生成されたファイルをすばやく (ただし、すぐには) 上書きすることを意味します。app_offline.htmしたがって、カスタム ファイルで更新される前に、公開を開始してから 1 ~ 2 秒以内に、システムによって生成された (醜い) コピーがリクエストに提供される可能性があります。

app_offline.htm公開プロセスは、コンテンツや発信元に関係なく、リモート サーバーから を自動的に削除します。

(システム コピーを置き換えるよりも) 利点は、独自のコピーが移植可能であり、自動的にソリューション固有であり、ソース管理で動作することです。

この質問が古いことは知っていますが、これが他の人がこの問題に対処するのに役立つことを願っています.

于 2016-07-07T00:29:41.693 に答える
10

私は自分のものを使用します

app_offline.htm_

公開されるソリューション内のファイル。次に、デプロイ スクリプトで名前を変更し (末尾の _ を削除)、アクティブにします。

その後、dbスクリプトを実行したり、ファイルの名前を変更したりして、サイトを元に戻すことができます。

于 2010-05-18T10:14:38.943 に答える
5

アンドリュー・ブロックの答えは魅力のように機能します! ただし、使用しているビジュアル スタジオによって異なります。

C:\Users\USERNAME\AppData\Roaming\Microsoft\VisualStudio

最初に着陸する必要があるディレクトリです。VSバージョン[8.0/9.0.....]を選択し、app_offile.htmファイルを編集します。

于 2012-10-18T07:34:24.977 に答える
3

現在のディレクトリ情報をパラメータとしてコンパイラを呼び出すバッチ ファイルを使用できます。次に、app_offline.htm をコピーし、新しいファイルをコピーします。ソースがある場所から実行します。

私は個人的に、バッチよりももう少し精巧なプログラムを使用し、ファイルのハッシュをチェックして更新が必要かどうかを判断し、新しいファイルのzipを作成してリモートホストに抽出し、ユニットテスト用に指定したファイルを削除しますテストから本番まで。また、SVN 統合をソリューションに組み合わせたので、テストまたは実稼働用に公開するときに、オプションで SVN にもコミットできます。プログラムはネットワーク ドライブに保存され、現在のディレクトリ情報を使用してローカル PC 上のバッチ ファイルから呼び出されます。このようにして、変更が発生した場合、開発者は新しいデプロイヤまたは app_offline に更新する必要がありません。最後に app_offline を削除します。

詳細については、http://msdn.microsoft.com/en-us/library/system.web.compilation(v=vs.80 ).aspx または http://msdn.microsoft.com/en-us/ をご覧ください。 library/ms229863(v=vs.80).aspxクイック バッチを作成するだけなら!

さらに、最初に参照した投稿で、実際に変更できることも確認しましたが、公開機能を使用して他の人のために変更することもできます。これが、あなたがあなたであるという答えを与えられた理由です。

于 2011-10-25T03:56:21.380 に答える
1

Web 用の Visual Studio Express 2013 のユーザーの場合、ファイルは C:\Users[user]\AppData\Roaming\Microsoft\VWDExpress\12.0 にあります。

これは、必要に応じて変更できます。

于 2015-03-07T09:32:32.760 に答える
0

2006 年に、Scott Gu は、VS が Publish で生成するファイルをカスタマイズする方法はないと述べました。

元の記事内のコメント

私もこれを解決することに興味がありますが、Google で反対の決定的なものを見つけることができませんでした.

于 2010-05-17T01:05:09.423 に答える
-3

これを見たことがありますか?

App_Offline.htm

それは(正確に)あなたが望むものではないかもしれませんが、私が思うに問題は解決します。

于 2010-05-17T01:05:25.180 に答える