【发布时间】:2012-10-18 09:26:09
【问题描述】:
我有一个属性组,其中包含一个 build_number 属性,该属性是从 TeamCity 传入的,仅作为构建计数器。在 TeamCity 中将内部版本号格式设置为计数器的简单 {0}。
<PropertyGroup>
<Major>10</Major>
<Minor>1</Minor>
<Build>$(BUILD_NUMBER)</Build>
<Release>0</Release>
...
</PropertyGroup>
Major、Minor 和 Release 属性随后会根据源代码管理中文件中的值进行更新。
为了让 TeamCity 将构建记录为完整的 4 部分构建参考(不仅仅是计数器),我将其设置为:
<TeamCitySetBuildNumber BuildNumber="$(Major).$(Minor).$(Build).$(Release)" />
但是,现在当我引用我的 $(Build) 属性时,它现在设置为 4 部分构建引用,并且在使用 TeamCitySetBuildNumber 设置之前我所做的任何引用 $(BUILD_NUMBER) 的属性也会被覆盖4 部分参考。
注意,我还使用系统消息对其进行了更改:
<Message Text="##teamcity[buildNumber '$(Major).$(Minor).$(Build).$(Release)']" />
但整体效果是一样的。
在我设置了上面的 BuildNumber 之后,我如何才能(仅)参考构建计数器?
【问题讨论】:
-
为什么不直接将 teamcity 中的格式改为 10.1.{0}.0 然后使用 BuildNumber=$(BUILD_NUMBER)?
-
@JamesWoolfenden 这当然可以,但是(无论对错)目前我们的设置是通过源代码控制中的文件修改 [Major].[Minor] 部分。如果我不能得到满意的结论,这当然是后备立场。
-
您是否尝试过 msbuild 扩展包中的 assemblyinfo 任务。我试试看。
标签: msbuild continuous-integration version teamcity