【问题标题】:MsBuild TransformXml Task | How To Target TFS Build Agent only?MsBuild TransformXml 任务 |如何仅针对 TFS 构建代理?
【发布时间】:2016-09-17 09:46:39
【问题描述】:

我的 csproj 文件中有常用的 TransformXml 任务来应用一些 web.config 转换。

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\Web\Microsoft.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 msbuild tfsbuild


    【解决方案1】:

    这很容易通过向您的目标添加一个已知属性的条件,遗憾的是该属性会根据 TFS 版本和构建类型(XAML 与 vNext)而有所不同。

    TFS 2013

    &lt;Target Name="TransformWebConfig" Condition="$(TF_BUILD) != ''"&gt;

    vNext

    &lt;Target Name="TransformWebConfig" Condition="$(AGENT_ID) != ''"&gt;

    或者你可以反转并检查是否在 VS 中运行

    &lt;Target Name="TransformWebConfig" Condition="$(BuildingInsideVisualStudio) != 'true'"&gt;

    TFS 变量列在hereBuildingInsideVisualStudio here

    【讨论】:

    • 感谢好消息 - 有没有关于 TFS 已知属性的官方文档!?
    • 添加了回答链接
    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 2018-02-16
    • 2017-01-05
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多