Msbuild TFS 2010:使用内部版本号格式的标签名称

Msbuild TFS 2010:使用内部版本号格式的标签名称,msbuild,build,Msbuild,Build,我正在尝试使用TFS 2010建立一个版本。我希望版本号格式类似于$(BuildDefinitionName)$(version),其中$(version)是在“队列生成”对话框的“获取版本”字段中指定的版本(标签或变更集)。如果没有特定版本,我希望版本是最新的 我在谷歌上搜索了一下,但我对msbuild和TFS build还不熟悉,所以我不确定应该寻找什么来开始 谢谢。这是一个好的开始 生成模板(例如DefaultTemplate.xaml)中的Microsoft.TeamFoundation

我正在尝试使用TFS 2010建立一个版本。我希望版本号格式类似于$(BuildDefinitionName)$(version),其中$(version)是在“队列生成”对话框的“获取版本”字段中指定的版本(标签或变更集)。如果没有特定版本,我希望版本是最新的

我在谷歌上搜索了一下,但我对msbuild和TFS build还不熟悉,所以我不确定应该寻找什么来开始

谢谢。

这是一个好的开始

生成模板(例如DefaultTemplate.xaml)中的Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber活动是转换生成编号格式字符串的工作。它接受列出的任何参数,但是,版本(变更集或标签)不是受支持的标记之一

我发现一种不需要自定义代码的解决方法是在更新生成号活动使用BuildNumberFormat参数之前立即编辑该参数

  • 使用GUI编辑器打开xaml模板,并在顶部找到更新版本号活动
  • 在工具箱中找到基本体->分配活动。将其拖放到更新版本号的正上方
  • 编辑Assign活动,将BuildDetail.SourceGetVersion中的值
    String.Format($(BuildDefinitionName)$(日期:yyyyymmdd){0}$(版本:.r)
    分配给
    BuildNumberFormat
    。SourceGetVersion将提取用于触发生成的变更集编号或标签。如果在对生成进行排队时“获取版本”对话框中未指定任何内容,则默认情况下使用变更集编号(例如C16044)

  • 谢谢你的链接。我来看看。看起来不错,但不是我想要的。不过还是要谢谢你的帮助,看起来很棒。我试试看。谢谢。对于其他使用TFS2013的人-这似乎不起作用,并且失败了,出现以下错误:“Microsoft.TeamFoundation.Build.Client.BuildDetails在此上下文中不可访问,因为它是“朋友”@andersr相反-对我来说,它完全按照所描述的那样工作(TFS2013.Update2)在TFS 2010上非常有效!