【问题标题】:TFS DropLocationTFS 放置位置
【发布时间】:2014-08-12 15:51:35
【问题描述】:

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

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

【问题讨论】:

  • 您在使用升级模板吗?
  • 您使用的是哪个版本的 tfs?

标签: tfs msbuild


【解决方案1】:

如果您使用的是 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 时可以正常工作。

【讨论】:

    【解决方案2】:

    (我在 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) 将按照您的预期填充。

    我感觉你只需要导入,我已经有一段时间没有这样做了。

    干杯

    【讨论】:

    • 仅添加上面的 Import 语句对我不起作用。您必须通过手动将 BuildDetail.DropLocation 属性添加到 MSBuild 命令行参数来更新 BuildProcessTemplate 文件,例如 defaultTemplate.XAML。有关更多信息,请参阅本文中的答案:stackoverflow.com/questions/7330353/…
    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    相关资源
    最近更新 更多