MSBuild 脚本中的 TFS 2013 分支名称
Posted
技术标签:
【中文标题】MSBuild 脚本中的 TFS 2013 分支名称【英文标题】:TFS 2013 Branch Name in MSBuild Script 【发布时间】:2019-12-13 09:24:50 【问题描述】:我已经看到多次提到包含 TFS 分支名称的变量,这些变量是从构建定义的源设置路径中的最后一个目录中提取的,但我没有在 TFS 2013 中工作。是否有一个变量将在 TFS 2013 中填充到我的 MSBuild 脚本(从构建定义触发)?
这是我没有运气尝试过的,都是空白的:
<Message Text="SourceBranchName: $(SourceBranchName)" />
<Message Text="Build.SourceBranch: %(Build.SourceBranch)" />
<Message Text="BranchName: $(BranchName)" />
<Message Text="Build.SourceBranchName: %(Build.SourceBranchName)" />
<Message Text="BUILD_SOURCEBRANCHNAME: $(BUILD_SOURCEBRANCHNAME)" />
【问题讨论】:
@PatrickLu-MSFT 还没有机会测试。谢谢。 嗨亚伦,事情进展如何?有什么要更新的吗?只需检查以查看提供的信息是否有帮助。请随时在这里分享。 【参考方案1】:环境变量在带有 TFS2013 的 MSBuild 脚本中的数据不使用这种格式。
应该是TF_BUILD_XXX
比如
TF_BUILD_BUILDDIRECTORY:构建代理工作目录。例如:C:\Build\BuildBot3\CoolApp\CIBuild。
官方教程在 TFS2013 中构建 XAML,你可以参考这个链接--Team Foundation Build environment variables。
如您所见,我们在构建中没有与分支名称相关的环境变量。
对于解决方法,您可以使用客户端 API 来获取类似信息。
IBuildDetail
对象中有一个名为 SourceGetVersion 的属性。当使用构建定义中定义的默认分支手动执行或触发构建定义时,此属性仅返回“T”,但如果构建定义是由提交到受监控的分支触发的,然后将此属性设置为分支名称。
只需解析该属性的值,您就应该能够准确地确定是哪个分支触发了构建定义。或者你也可以使用
TF_BUILD_SOURCEGETVERSION:正在构建的版本(TFVC 变更集或 Git 提交)。
【讨论】:
【参考方案2】:您正在查看 TFS 2015 中引入的构建系统的文档。TFS 2013 仅支持 XAML 构建,它已被弃用,因此越来越难以找到有关文档。
不过,有documentation 可用。
这里的问题是您正在寻找 TFS 2013 中不存在的变量。您可以做的最好的事情是 TF_BUILD_SOURCEGETVERSION
,它将是 TFVC 变更集或正在构建的 Git 提交哈希。
【讨论】:
以上是关于MSBuild 脚本中的 TFS 2013 分支名称的主要内容,如果未能解决你的问题,请参考以下文章
TFS MSBuild 不为解决方案中的网站恢复 nugets