ASP.NET Web アプリケーションのビルド出力 - すべての展開ファイルを含めるにはどうすればよいですか?
-
09-06-2019 - |
質問
私が自分のものを構築するとき ASP.NET Web アプリケーション Web サイトのコードを含む .dll ファイルを取得します (これは素晴らしいことです) が、Web サイトにはすべての .aspx ファイルとその友人も必要であり、これらは正しいディレクトリ構造に配置する必要があります。各ビルドの結果として、これをすべて 1 つのディレクトリに取得するにはどうすればよいですか?ソース ディレクトリから適切なファイルを選択しようとするのは面倒です。
最終的には、xcopy をデプロイ可能になるはずです。
アップデート: 私が知っている Publish コマンドを手動で使用する必要はありません。アプリケーションに必要なファイルの完全なセットをビルド出力にしたい - これは、実行時にファイルの完全なセットを 1 か所で取得することも意味します。 MSBuild.
解決
解決策の 1 つは Web Deployment Projects (WDP) です。これは、Web プロジェクトをディレクトリにビルドし、オプションでアセンブリをマージしたり、web.config ファイルを変更したりできる、Visual Studio (および msbuild) のアドオンです。WDP の構築の出力は、サイトを 1 つのディレクトリに展開するために必要なすべてのファイルです。
Web 展開プロジェクトの詳細情報:
このソリューションの唯一の欠点は、ビルド マシンで使用できるアドオンが必要なことです。それでも、今のところは十分です!
他のヒント
ASP.NETにはありません 本物 xcopy のデプロイメント 新しい サイト。IIS に仮想ディレクトリ/アプリケーションがあるかどうかに依存します。ただし、仮想ディレクトリが作成されると、更新に xcopy を使用できるようになります。
あなたはできる Webサイトを公開する..展開を自動化したい場合は、いくつかの機能を使用する必要があります。 脚本.
.net Framework ディレクトリにある aspnet_compiler.exe を使用してみましたか?Web アプリケーションまたは Web サイトの「デプロイ準備完了」バージョンを作成できることは間違いありません。
MSBuild の _CopyWebApplication ターゲットは、必要なことを正確に実行します。問題は、メイン アセンブリのみが bin フォルダーにコピーされるため、bin フォルダー上の他のファイルもコピーするにはコピー タスクが必要になるということです。
この投稿の一部としてサンプル スクリプトを投稿しようとしましたが、投稿できませんでした。
これを見てください 記事 私のブログでは、必要なものと同様の MSBuild スクリプトを作成する方法を説明しています。
ソリューション エクスプローラーで Web サイトを右クリックし、[Web サイトの発行] をクリックしてみましたか?
ビルド --> 公開
プロセスを案内するダイアログ ボックスが表示されます。
アップデートで説明されている自動化された建物については、以下を検討することをお勧めします。 MSBuild そして クルーズコントロール.NET
どれだけ複雑なソリューションが必要かによって異なりますが、たとえばスクリプトとジェンキンスを使用するだけでも構いません。MSBUild を Jenkins とともに使用すると、IIS に展開するだけで済みます。また、Jenkins を持っている場合は、後で他のツールを Jenkins に接続するのが非常に簡単です。ただし、単にビルドしたい場合は、MSDeploy を使用するすべてのビルドを jenin が実行するスクリプトを使用すると、うまく機能します。
これが私が行う方法です。感覚を伝えるために:
Sonarqube は Gallio、Gendarme、FXcop、Stylecop、NDepths、PartCover を使用してメトリクスを取得します。SonarQube は多くの設定を行わずにこれを自動的に行うため、これはすべて非常に簡単です。
ここでは、Jenkins ウィッチ ビルドと Sonar メトリクスの取得、および IIS に自動的にデプロイするための別のジョブを示します。MSBuild と URL、パス、ユーザーを呼び出す 1 行の単純なスクリプトを使用します。
そして、Sonarqube、私のプロジェクトのすべてのメトリクス。これはシンプルな MVC4 アプリですが、非常にうまく機能します。
さらに詳しい情報が必要な場合は、良いガイドを提供できますか。
このセットアップ全体では、アプリのビルドと展開にも MSBuild を使用します。