Powershell TeamCity,repo和assembly patcher中文件的版本号 上下文

Powershell TeamCity,repo和assembly patcher中文件的版本号 上下文,powershell,teamcity,version,Powershell,Teamcity,Version,在我们的repo中,我们有一个名为version.txt的文件,其中包含主版本号和次版本号:0.7 我添加了一个TeamCity构建步骤,其中包含一个powershell脚本,该脚本根据以下内容将此参数设置为配置参数: TeamCity上的UserMajorDotMinor参数默认为0.6 我有一个名为%UserVersionNumber%的配置参数,用于设置实际的版本号,该版本号定义为 %UserMajorDotMinor%.0.%system.build.number% 问题 虽然在Tea

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

我添加了一个TeamCity构建步骤,其中包含一个powershell脚本,该脚本根据以下内容将此参数设置为配置参数:

TeamCity上的
UserMajorDotMinor
参数默认为
0.6

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

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


为了使TeamCity能够将正确的版本号写入DLL,我必须进行哪些更改?

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

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

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


或者,使用脚本将AssemblyInfo.cs文件作为单独的生成步骤而不是Assembly Info Pather功能进行修补。

程序集修补程序将在任何生成步骤之前运行,因此,对步骤中的参数所做的更改不会反映在程序集信息修补程序中。看起来像是的副本。实际上不是副本,即使解决方案相似。
%UserMajorDotMinor%.0.%system.build.number%