我已经看到过几次提到包含 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)" />
MSBuild 脚本中的环境变量数据TFS2013不使用这种格式。
它应该是TF_BUILD_XXX
例如
TF_BUILD_BUILDDIRECTORY:生成代理工作目录。例如:C:\Build\BuildBot3\CoolApp\CIBuild。
XAML 构建的官方教程TFS2013,您可以参考此链接 - 团队基础构建环境变量。
如您所见,我们没有与构建中使用的分支名称相关的环境变量。
对于解决方法,可以使用客户端 API 提取类似的信息。
在一个名为 SourceGetVersion 的IBuildDetail
对象中有一个属性。使用生成定义中定义的默认分支手动执行或触发生成定义时,此属性仅返回">T",但如果生成定义是由提交到受监视分支触发的,则此属性将设置为分支名称。
只需分析此属性的值,您应该能够准确确定哪个分支触发了生成定义。或者你也可以使用
TF_BUILD_SOURCEGETVERSION:正在生成的版本(TFVC 变更集或 Git 提交(。
你正在查看 TFS 2015 中引入的生成系统的文档。TFS 2013 仅支持 XAML 版本,该版本已弃用,因此越来越难以找到相关文档。
但是,有可用的文档。
此处的问题是您要查找 TFS 2013 中不存在的变量。你能做的最好的事情是 TF_BUILD_SOURCEGETVERSION
,这将是正在构建的 TFVC 变更集或 Git 提交哈希。