[TFS 2015] 解決 MsBuild 沒有套用 Web.Config Transform

以往手動 WebDeploy 部署網站,就會套用 Web.config Transform,為了自動化必須要捨棄手動 WebDeploy,我改用  TFS 的 MsBuild Arguments,發行網站。

這會衍生出另一個問題, MsBuild 並不會套用 Web.config Transform,拖了好久今天才花了一點時間,找出解決方法。

自動化部署,參考上篇:
https://dotblogs.com.tw/yc421206/2016/04/20/tfs2015_build_vnext_webdeploy
https://dotblogs.com.tw/yc421206/2016/04/21/tfs2015_build_vnext_release_deploy_internal_webapp

伺服器環境:
  • Windows 2012 Datacenter x64 中文版
  • TFS 2015 Update 2 中文版
問題原因:
  • Build vNext  產生出來的 Web.config 組態設定有套用 Transform
解決方法:

在 Web 應用程式專案,加入以下設定

<Target Name="TransformConfigFiles" AfterTargets="AfterBuild" Condition="'$(TransformConfigFiles)'=='true'">
	<ItemGroup>
	  <DeleteAfterBuild Include="$(WebProjectOutputDir)\Web.*.config" />
	</ItemGroup>
	<TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config" />
	<Delete Files="@(DeleteAfterBuild)" />
</Target>

 

操作步驟:

簽入 TFS。

然後在 MsBuild 引數加上 /P:TransformConfigFiles=true

/p:OutDir=$(Build.BinariesDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /P:TransformConfigFiles=true

最後,運行 Build 觀察最後產生出來的成品有沒有順利套用 Web.Config Transform

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo