web-dev-qa-db-ja.com

公開中のカスタムapp_offline.htmファイル

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

これはクールで、私はこのアイデアが本当に好きですが、公開アクションが認識している独自のカスタムapp_offline.htmファイルを作成し、開発サイトに影響を与えない場所に配置したいと思います。私の開発サイトのルートは、常にオフラインにしています。

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

28
Charlino

私はこれが古いことを知っていますが、ここを見て解決策を見つけたので、私は答えを提供するべきだと思いました。 VS11はパブリッシングを保持しますapp_offline.htmこの場所のファイル:

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

私はこれをテストしてカスタマイズしましたが、このファイルを変更しても機能します。もちろん、欠点は、これがすべてのWeb公開に使用されるファイルであるということです。

25
Eonasdan

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

Visual Studio 2015を使用してこのメ​​ソッドをテストしましたが、実際に機能します。

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

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

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

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

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

11
Lemonseed

私は自分のものを使います

app_offline.htm_

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

次に、dbスクリプトを実行し、何でも実行して、ファイルの名前を変更してサイトを元に戻します。

9
Andrew Bullock

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

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

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

3
joe

現在のディレクトリ情報をパラメータとしてコンパイラを呼び出すバッチファイルを使用できます...次に、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 簡単なバッチを作成している場合は、

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

3
Jay

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

それはあなたのニーズに合わせて変更することができます。

1
Joop Stringer

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

元の記事内のコメント

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

0
user164226