TFS 2015(Update 1)をオンプレミスにインストールしたばかりで、新しいTFSビルドシステムを使用して継続的インテグレーション/ビルドシステムを作成しようとしています。ビルドは正常に動作し、青信号が表示されますが、デフォルトのビルドを見ると、binディレクトリからバイナリがビルドされているだけであり、アプリをオンプレミスでローカルサーバーにデプロイする簡単な方法がないようです。 。
ファイルシステムコピーとpowershellスクリプトには2つの展開オプションがあり、それらを使用してファイルを新しいサーバーにコピーするのは確かに十分簡単ですが、ビルドはバイナリのみをビルドしたため、次のツールは表示されません。このためにWebアーティファクト(cshtml、画像、スクリプト、cssなど)を収集します。
徹底的なグーグル検索の後、私はこれについて話す記事を1つだけ見つけました:
http://www.deliveron.com/blog/building-websites-team-foundation-build-2015/
ただし、これはWebDeployを使用し、かなり面倒なデプロイパッケージを作成します。
アーティファクトを備えたサイト(標準のMVC Webアプリケーション、実際にはテストは、プロジェクトの作成ウィザードで作成されたデフォルトのボイラープレートサイトを使用しています)をどのようにして最も簡単な方法でローカルサーバーにデプロイできますか?サーバーにWebDeployをインストールする必要はなく、PowerShellなどを使用して最終的なアーティファクトをデプロイします。
ビルドは、標準のVisual Studioビルドテンプレートであり、4つのステップ(ビルド、テスト、インデックス作成と公開、ビルドアーティファクトの公開)があります。
「Visual Studio Build」ステップを使用し、MSBuildの引数として次の行を使用します。
/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)
変数タブページで、DeploymentConfigurationを設定する必要があります。これは、発行プロファイルの名前(pubxmlファイルのファイル名)である必要があります。ファイル名がBuild.pubxmlの場合、公開プロファイルはBuildです。
例えば:
/p:DeployOnBuild=True /p:PublishProfile=Build
Ben Dayには、すぐにパッケージ化してから、Release Managerを介して複数の環境にリリースするのに役立つ優れた記事があることを付け加えたかった 。
彼のmsbuild引数は次のようになります。
/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website
これと受け入れられた答えの違いは、このパラメーターセットがアーティファクトフォルダー内のすべてをステージングし、ビルドの一部として保存することです。その後、まったく同じコードを繰り返しデプロイできます。
For-deployフォルダーと一緒にweb.env.configファイルをキャプチャし、リリースプロセスでxdt変換を使用して、展開先の環境に合わせてすべてが更新されるようにします。私たちのすべてのWebプロジェクトでうまく機能します。