TFS液滴定位

TFS液滴定位,tfs,msbuild,Tfs,Msbuild,我正在尝试在特定项目的MsBuild脚本中获取TFS的放置文件夹位置 我尝试使用$(DropLocation)属性,但该属性为空。获取MSBuild脚本中TFS使用的放置文件夹位置的最佳方法是什么?如果您使用的是TFS 2013,您手头有一个很好的TF\u BUILD\u DROPLOCATION环境变量,可以像使用任何属性一样使用它 在2012年及更早的版本中,您可以自定义TFS生成模板:选择属性并将值传递给MSBuild。有关详细信息,请参阅 使用TF_BUILD_DROPLOCATION作

我正在尝试在特定项目的MsBuild脚本中获取TFS的放置文件夹位置


我尝试使用$(DropLocation)属性,但该属性为空。获取MSBuild脚本中TFS使用的放置文件夹位置的最佳方法是什么?

如果您使用的是TFS 2013,您手头有一个很好的TF\u BUILD\u DROPLOCATION环境变量,可以像使用任何属性一样使用它

在2012年及更早的版本中,您可以自定义TFS生成模板:选择属性并将值传递给MSBuild。有关详细信息,请参阅

使用TF_BUILD_DROPLOCATION作为属性名,这样在升级到TFS 2013时,您的代码就可以工作了。

(我在ts2010中这样做了,现在仍然使用tfs2012) 添加到您的msbuild.proj中,如下所示

<Project DefaultTargets="SetEnv" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />

  <PropertyGroup>
    <TeamBuildRefPath Condition="'$(TeamBuildRefPath)'==''">$(PathToMyDevenv)\IDE</TeamBuildRefPath>
  </PropertyGroup>

$(PathToMyDevenv)\IDE
然后,$(DropLocation)会像您所期望的那样被填充

我有一种感觉,你只需要进口,我已经有一段时间没有这样做了


干杯

您使用的是升级模板吗?您使用的是哪个版本的tfs?仅添加上面的导入语句对我不起作用。您必须通过手动将BuildDetail.DropLocation属性添加到MSBuild命令行参数来更新BuildProcessTemplate文件defaultTemplate.XAML。有关更多信息,请参阅本文中的答案:。