MsBuild TransformXml Task |如何仅面向 TFS 生成代理



我的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 变量。

最新更新