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

时间:2019-06-21 18:07:50

标签: powershell tfs tfsbuild tfs2012

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

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

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

1 个答案:

答案 0 :(得分: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文件中的description字段,作为您在上面获得的变更集编号。

希望这会有所帮助。