TeamCity 自定义内部版本号 - AssemblyInfo 修补程序

TeamCity Custom Build Number - AssemblyInfo patcher

我已经创建了一个适合我需要的 TeamCity 构建配置,请参阅下面的构建日志:

除一件事外一切正常 - 自定义版本号。我的内部版本号格式如下:

在构建日志中注意,第 1 步设置构建号。问题是这发生在 更新程序集版本 步骤之后。所以这个版本号没有应用到我的程序集。

但是构建过程中的其他地方都使用了正确的版本号。

所以我的问题是,如何在 AssemblyInfo Patcher 运行之前设置自定义内部版本号?

Teamcity 提供构建功能 "AssemblyInfo Patcher",允许在没有补丁的情况下为程序集设置构建号。 您可以在 :

下找到它

构建配置设置 -> 构建功能 -> 单击添加新功能和 select AssemblyInfo 修补程序。

您可以指定相同的内部版本号格式 "Major.Minor.BuildCounter.TodaysDate" AssemblyInfo Patcher。类似于:%Major%.%Minor%.%build.counter%.%system.build.start.date%

通过添加 Major 和 Minor 作为 teamcity 配置参数。 您可以使用 teamcity 的预定义 %build.counter% 参数。

最后是今天的日期: TeamCity 的 Groovy Plugin 提供构建开始 date/time 属性

system.build.start.date system.build.start.time

使用 TeamCity 的快照依赖特性解决。

创建了一个名为 Version 的构建配置。这有一个 powershell 脚本构建步骤,它创建了我想要的内部版本号。

接下来,我根据版本构建配置进行实际构建配置。

然后我在我的实际构建配置中得到这个构建号,就像这样: %dep.[构建配置 ID].system.build.number%