【问题标题】:TFS 2012 build changeset version in PowerShell scriptPowerShell 脚本中的 TFS 2012 构建变更集版本
【发布时间】:2019-11-04 14:28:37
【问题描述】:

我们有一个 TFS 2012 实例和一个带有 VS 2017 的构建代理。我正在尝试修改 XAML 构建模板以从给定项目创建一个 nuget 包。我需要将变更集编号放在包的描述中,但我无法获得正确的值。

我的模板的 AgentScope 中有一个 InvokeProcess 活动,它运行 PowerShell 脚本来打包包。我尝试获取 TF_BUILD_* 环境变量,但似乎没有填充。我也尝试了 BUILD_SOURCEVERSION ,但没有运气。目前我正在传递 BuildDetail.SourceGetVersion 值,但它返回的是整个团队项目的当前变更集,而不是我正在构建的特定项目。

我做错了什么?这些变量是否仅在 TFS 服务器上而不在代理(构建服务器)上?

【问题讨论】:

    标签: powershell tfs tfsbuild


    【解决方案1】:

    PowerShell 脚本中的 TFS 2012 构建变更集版本

    根据文章Build Script Hooks for TFS 2012 Builds

    当我为 2013 版本创建脚本以对程序集进行版本控制时,我 依赖于 2013 构建设置了一些环境变量的事实 你可以在你的脚本中使用它。你可以看到我得到了 $env:TF_BUILD_BUILDNUMBER。那么,在 2012 年的工作流程中,这些变量 没有设置,所以你必须添加一个活动来做到这一点

    这就是您尝试获取 TF_BUILD_* 环境变量但似乎没有填充的原因。

    所以,要解决这个问题,你可以按照挑战2中的步骤来设置它。

    或者,您可以使用 TFS API 在您的 TFS 版本控制中获取最新的变更集编号:

    详情请看本帖:

    Programmatically retrieve the latest changeset number available in a workspace

    然后您可以编写另一个小程序来修改.cs文件中的描述字段为您在上面得到的变更集编号。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 2016-02-10
      • 2013-08-18
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 2016-10-29
      相关资源
      最近更新 更多