1 つの webapp プロジェクトといくつかの付随するプロジェクトを含む単一のソリューションがあります。私たちの TFS 2010 は毎晩このソリューションを構築しており、Web アプリケーションを IIS サーバーに展開しています。それはそよ風のように実行されます。
TFS ビルド定義の [プロセス] タブで、「MSBuild 引数」を指定できます。これは、ビルド定義で設定されている値です (すべて 1 行で)。
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl=<service url of IIS>
/p:DeployIisAppPath="<a website>"
/p:UserName=<domain>\<user
/p:Password=<password>
このブログ投稿では、セットアップ全体について説明しています: http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html。
ここまでは順調ですね。
これで、毎晩同じ IIS にもデプロイする 2 番目の webapp プロジェクトを追加しました。残念ながら、この場合、セットアップは適用されません。TFS は 1 つの Web アプリケーションのみをデプロイします。
同じ問題を抱えている人が他にもいます:
ソリューションに複数の Web アプリケーションがある場合の TFS 2010 + MSDeploy
と
Vishal R. Joshi は、各 webapp プロジェクトにいくつかのプロパティを追加することを提案しています。リリース ビルドは、次のプロパティが定義されている各 webapp プロジェクトの webpackage (zip ファイル) を生成します。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DeployOnBuild>True</DeployOnBuild>
<DeployTarget>Package</DeployTarget>
<CreatePackageOnPublish>true</CreatePackageOnPublish>
</PropertyGroup>
Ok。しかし、TFS をどのようにして各 Web アプリケーションを IIS にデプロイするのでしょうか? 他のアイデアはありますか?