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

时间:2016-02-24 06:58:23

标签: powershell teamcity build-process

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

Build Log

除了一件事 - 自定义内部版本号之外,它一切都很好用。我的内部版本号格式如下:

  • Major.Minor.BuildCounter.TodaysDate,即2.0.59.20160224。
  • 我使用PowerShell脚本实现了这一目标。

请注意,在构建日志中,第1步设置内部版本号。问题是在更新程序集版本步骤之后会发生这种情况。因此,此版本号不会应用于我的程序集。

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

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

2 个答案:

答案 0 :(得分:5)

使用TeamCity的快照依赖项功能解决。

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

接下来,我将实际的构建配置依赖于版本构建配置。

然后我在我的实际构建配置中得到这个构建号,如下所示: %dep。[构建配置ID] .system.build.number%

答案 1 :(得分:1)

Teamcity提供构建功能" AssemblyInfo Patcher"这允许在没有补丁的情况下将构建号设置到程序集。 您可以在以下网址找到它:

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

enter image description here

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

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

最后今日日期:  TeamCity的Groovy Plugin提供构建开始日期/时间属性

  

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