PowerShell脚本中的TFS 2012生成变更集版本

PowerShell脚本中的TFS 2012生成变更集版本,powershell,tfs,tfsbuild,Powershell,Tfs,Tfsbuild,我们有一个TFS 2012实例和一个构建代理w/VS 2017。我正在尝试修改XAML构建模板,以便从给定项目创建nuget包。我需要在包的描述中输入变更集编号,但无法获得正确的值 我的模板的AgentScope中有一个InvokeProcess活动,它运行PowerShell脚本来打包包。我尝试过获取TF_BUILD_*环境变量,但似乎没有填充任何变量。我还尝试了构建SOURCEVERSION,但没有成功。目前,我正在传递BuildDetail.SourceGetVersion值,但它返回的是

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

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

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

PowerShell脚本中的TFS 2012生成变更集版本

文章说,

当我为2013年版本的程序集创建脚本时,我 基于2013年构建设置了一些环境变量这一事实 你可以在脚本中使用。你可以看到我 $env:TF\u BUILD\u BUILDNUMBER。在2012年的工作流程中,这些变量 未设置,因此必须添加一个活动才能执行此操作

这就是为什么您尝试获取TF_BUILD_*环境变量,但似乎没有填充任何变量的原因

因此,要解决此问题,只需按照挑战2中的步骤设置即可

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

有关详细信息,请参阅此线程:

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

希望这有帮助