TeamCity,来自repo和汇编修补程序中文件的版本号

时间:2015-11-26 14:51:39

标签: powershell teamcity version

上下文

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

我添加了一个TeamCity构建步骤,其中包含一个PowerShell脚本,该脚本根据this answer将此参数设置为配置参数:

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

TeamCity上的UserMajorDotMinor参数默认为0.6

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

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

问题

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

我需要更改什么,以便TeamCity实际上将正确的版本号写入dll?

1 个答案:

答案 0 :(得分:2)

程序集信息修补程序构建功能将在任何构建步骤之前运行,因此,对步骤中的参数所做的更改不会影响程序集信息修补程序

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

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

作为替代方案,使用脚本将AssemblyInfo.cs文件修补为单独的构建步骤而不是程序集信息隐藏功能。