我的csproj文件中有通常的TransformXml任务来应用一些web.config转换。
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)MicrosoftVisualStudiov14.0WebMicrosoft.Web.Publishing.Tasks.dll" />
<Target Name="TransformWebConfig">
<TransformXml Source="$(ProjectDir)Web.config" Transform="$(ProjectDir)Web.$(WebConfigReplacement).config" Destination="$(ProjectDir)Web.config" StackTrace="true" />
</Target>
但是 - 我可以放入一个条件,以便仅在 TFS 生成代理上的生成时调用此任务吗?
通过在已知属性上向目标添加条件,这很容易,遗憾的是,该属性因 TFS 版本和生成类型(XAML 与 vNext)而异。
TFS 2013
<Target Name="TransformWebConfig" Condition="$(TF_BUILD) != ''">
v下一页
<Target Name="TransformWebConfig" Condition="$(AGENT_ID) != ''">
或者您可以反转并检查是否在 VS 中运行
<Target Name="TransformWebConfig" Condition="$(BuildingInsideVisualStudio) != 'true'">
此处列出了 TFS 变量,此处BuildingInsideVisualStudio
列出了 TFS 变量。