我有一个使用默认流程模板的简单tfs-2010构建定义。在它中,我定义了内部版本号格式,使用$(BuildID)来定义计算字段的一部分。这是可行的,我可以看到BuildID的值是什么。
现在我尝试将BuildID属性作为参数传递给MSBuild:
/p:SomeProperty=$(BuildID)
但是,当我查看构建日志时,我看到SomeProperty从字面上等于$( BuildID ),而不是BuildID的值。
我遗漏了什么?
为了清楚起见,更新:我想问的是如何在构建定义中引用作为构建过程参数。例如,内部版本号格式的默认表达式为$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)
发布于 2011-08-30 21:22:36
您需要使用VB.NET表达式。例如:
String.Format("/p:SomeProperty={0}", BuildDetail.BuildNumber)
内部版本号令牌,例如$(BuildDefinitionName),特定于内部版本号格式进程参数。它们不是您可以在构建过程中的任何其他地方使用的令牌。大多数都可以在BuildDetail对象中或从环境中获得。但是,构建Id是一个有点特殊的情况。它来自builds表的identity列,并不直接在我们的公共API中公开。您可以从BuildNumber中提取它,如下所示:
BuildDetail.BuildNumber.Substring(BuildDetail.BuildNumber.LastIndexOf('/') + 1)
请注意,您需要直接在XAML中执行此操作,而不是将VB表达式放入构建过程参数编辑器GUI中。这是因为这些值只是作为文字字符串传递。
https://stackoverflow.com/questions/7232055
复制相似问题