【问题标题】:TeamCity, version numbers from file in repo and assembly patcherTeamCity,来自 repo 中文件的版本号和程序集修补程序
【发布时间】:2015-11-26 14:51:38
【问题描述】:

上下文

在我们的存储库中,我们有一个名为 version.txt 的文件,其中包含主要和次要版本号:0.7

我添加了一个带有 powershell 脚本的 TeamCity 构建步骤,该脚本将此参数设置为配置参数,基于 this answer

$version = Get-Content version.txt
Write-Host "##teamcity[setParameter name='UserMajorDotMinor' value='$version']"

UserMajorDotMinor 参数在 TeamCity 上默认为 0.6

我有一个名为%UserVersionNumber%的配置参数,用于设置实际的版本号,定义为

%UserMajorDotMinor%.0.%system.build.number%

问题

虽然在 TeamCity 构建日志中打印 0.7,但它似乎没有正确设置 UserVersionNumber,因为程序集修补程序写入 dll 的数字仍然是 0.6.0.xxxxx

为了让 TeamCity 实际上将正确的版本号写入 dll,我需要进行哪些更改?

【问题讨论】:

  • Assembly 修补程序将在任何构建步骤之前运行,因此,在一个步骤中对参数所做的更改不会反映在 Assembly Info Patcher 中。
  • 不是真正的重复,即使解决方案相似。

标签: powershell teamcity version


【解决方案1】:

Assembly Info Patcher 构建功能将在任何构建步骤之前运行,因此,在一个步骤中对参数所做的更改不会影响 Assembly Info Patcher

如果您确实需要使用 version.txt 文件中的 Major.Minor 信息,那么我将设置一个单独的构建配置,该配置读取文件并将内容作为构建参数 %UserMajorDotMinor% 提供。基本上你已经做了。

然后你可以将新创建​​的配置作为依赖添加到实际构建中,并将%Version%参数设置为%dep.[buildconfigname].UserMajorDotMinor%.0.%system.build.number%

作为替代方案,使用脚本来修补您的 AssemblyInfo.cs 文件作为单独的构建步骤,而不是 Assembly Info Pather Feature。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2014-04-09
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多