【发布时间】:2014-08-12 15:51:35
【问题描述】:
我正在尝试在我的 MsBuild 脚本中为特定项目获取 TFS 的放置文件夹位置。
我尝试使用 $(DropLocation) 属性,但这是空的。在 MSBuild 脚本中获取 TFS 使用的放置文件夹位置的最佳方法是什么?
【问题讨论】:
-
您在使用升级模板吗?
-
您使用的是哪个版本的 tfs?
我正在尝试在我的 MsBuild 脚本中为特定项目获取 TFS 的放置文件夹位置。
我尝试使用 $(DropLocation) 属性,但这是空的。在 MSBuild 脚本中获取 TFS 使用的放置文件夹位置的最佳方法是什么?
【问题讨论】:
如果您使用的是 TFS 2013,则手头有一个不错的 TF_BUILD_DROPLOCATION 环境变量,您可以像使用任何属性一样使用它。
在 2012 年及更早的版本中,您可以自定义 TFS 构建模板:选择 BuildDetail.DropLocation 属性并将值传递给 MSBuild。详情请见How to pass TFS variable to a MSBuild task of the project。
使用 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>
然后 $(DropLocation) 将按照您的预期填充。
我感觉你只需要导入,我已经有一段时间没有这样做了。
干杯
【讨论】: