MsBuild TransformXml任务|如何仅针对TFS构建代理?

时间:2016-05-20 08:14:19

标签: tfs msbuild tfsbuild

我在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构建代理上构建时调用吗?

1 个答案:

答案 0 :(得分:1)

通过向目标添加已知属性的条件很容易,遗憾的是,属性因TFS版本和构建类型(XAML与vNext)而异。

2013年TFS

<Target Name="TransformWebConfig" Condition="$(TF_BUILD) != ''">

vNext

<Target Name="TransformWebConfig" Condition="$(AGENT_ID) != ''">

或者您可以撤消并检查是否在VS中运行

<Target Name="TransformWebConfig" Condition="$(BuildingInsideVisualStudio) != 'true'">

列出了TFS变量http://redis.io/BuildingInsideVisualStudio here