在 TFS 2015 自动构建中使用分支名称

Use Branch Name in TFS 2015 Automated Build

我的 TFS 存储库具有以下结构:

Project
 - Dev
    - 1.0.0_Branch1
    - 1.1.0_Branch2
    - N.0.0_BranchN

这些分支是 TFS 中的实际分支。

我在 TFS 服务器上为该项目设置了自动 CI 构建。我遇到的问题是我需要 TFS 中的构建名称才能使用分支名称。

我已经尝试了这里列出的一些构建定义变量,例如 $(SourceBranchName) 和 $(Build.SourceBranchName) 但所有这些都使用了项目的名称(本项目中的项目例子)。

我希望构建按照 1.0.0_Branch1.1 的方式命名,最后一个数字是修订版。

我想这样做的原因是当我在构建结束时生成 Nuget 包时,可以使用正在构建的分支版本对它们进行版本控制。目前它们正在使用日期进行版本控制,这意味着最高版本只是最近构建的版本,实际上可能并非如此。我不想每次都手动设置版本。

正在构建的所有程序集都已正确版本化以匹配它们所在的分支。

有办法实现吗?

对于构建定义,$(SourceBranchName) 可用于构建编号格式:

示例构建:

环境变量是 BUILD_SOURCEBRANCHNAME,因此它将在 msbuild 中作为 $(BUILD_SOURCEBRANCHNAME) 可用。

可用变量列表位于:https://www.visualstudio.com/en-us/docs/build/define/variables#predefined-variables

这可能是由您在构建定义的 "Repository" 选项卡下配置的 "Mappings" 设置引起的。当您使用 TFVC 存储库构建时,BUILD_SOURCEBRANCHNAME 变量将填充工作区根服务器路径中的最后一个路径段。所以我想知道您的构建定义中的映射服务器路径是“$/Project”而不是“$/Project/Dev/1.0.0_Branch1”.

TFVC repo branch: The last path segment in the root server path for the workspace. For example in $/teamproject/main this value is main.

参考这个link了解详情:Predefined Variables