如何从自定义构建模板中获取“构建代理文件夹”?

时间:2014-04-22 13:16:02

标签: templates msbuild

我试图抓住" Build Agent Folder"从用于自定义构建模板。我知道我可以通过Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables到达属性,但我找不到任何能够提供"构建代理文件夹的东西"

因为我想为多个项目使用自定义模板,并希望能够设置不同的"构建代理文件夹"对于每一个我需要从某个地方读取这个属性。是否有其他地方可以阅读以找到这个属性?

是否有任何MSBuild $样式的属性保存这个?

1 个答案:

答案 0 :(得分:0)

您可以在流程模板中使用GetBuildDirectory活动。在MSBuild中,您可以使用MSBuildThisFileDirectory获取正在运行的脚本的当前目录。

如果您有多个映射,请使用Workspace.Folders访问它们。

  <ForEach x:TypeArguments="mtvc:WorkingFolder" DisplayName="ForEach WorkingFolder" Values="[Workspace.Folders]">
    <ActivityAction x:TypeArguments="mtvc:WorkingFolder">
      <ActivityAction.Argument>
        <DelegateInArgument x:TypeArguments="mtvc:WorkingFolder" Name="folder" />
      </ActivityAction.Argument>
      <mtbwa:WriteBuildMessage Message="[String.Format(&quot;'{0}' mapped to '{1}'&quot;, folder.ServerItem, folder.LocalItem)]" />
    </ActivityAction>
  </ForEach>

此外,您可以在构建定义中使用$(SourceDir),而不是使用$(BuildDir),这将为您带来一个级别。