如何将程序集版本设置为Jenkins内部版本号?

Nir*_*man 6 environment-variables jenkins jenkins-plugins

我在Jenkins中使用"更改程序集版本"插件来更新我的ASP.NET MVC项目的所有AssemblyInfo.cs文件,以在构建过程中应用版本号.如果我将"汇编版本"值设置为硬编码值,则效果非常好.

但我的要求是不同的 - 我想在版本号中使用内部版本号.例如,"1.1.0.25",其中25是内部版本编号,由Jenkins自动生成.简而言之,版本应该像"1.1.0.<>"

我可以使用TFS环境变量在TFS构建过程中执行此操作,我是Jenkins的新手,并且不确定如何在Jenkins中实现此目的.以下是Jenkins的"Change Assembly Version"插件的屏幕截图,供您快速参考:

在此输入图像描述

提前致谢

mip*_*ips 7

对于希望仅更新版本号的1个但保留其余现有版本号的其他人,您可以设置"更改程序集版本"插件,如下所示:

汇编版本: $ BUILD_NUMBER
FileName: <project folder> /Properties/AssemblyInfo.cs
RegexPattern: Assembly(\ w*)Version \("(\ d +).(\ d +).(\ d +).(\ d +)"\ )
ReplacementPattern:汇编$ 1Version("$ 2. $ 3.%s")

这将保留现有的前两个数字已包含在Assembly ??? Version设置中,并将第三个版本号设置为当前的Jenkins内部版本号.

AssemblyInfo.cs包含:

[assembly: AssemblyVersion("1.40.0.0")]
[assembly: AssemblyFileVersion("1.40.0.0")]
Run Code Online (Sandbox Code Playgroud)

如果Jenkins内部版本号为103,则在更改程序集版本插件使用上述设置之后,AssemblyInfo.cs将包含:

[assembly: AssemblyVersion("1.40.103.0")]
[assembly: AssemblyFileVersion("1.40.103.0")]
Run Code Online (Sandbox Code Playgroud)

注意

如果您正在使用subversion(可能还有其他源控制系统)并且正在使用" 尽可能使用SVN更新 "的" 出策略",则必须将其更改为" 使用svn尽可能多地使用SVN更新 " 在更新之前还原 "以确保为下一次构建重置已修改的AssemblyInfo.cs文件.


小智 7

以前关于如何使用Jenkins的"更改程序集版本"插件的答案不起作用.在我的AssemblyInfo.cs文件中,我通常使用自动递增版本来设置它们以帮助本地开发工作.

AssemblyInfo.cs包含:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]
Run Code Online (Sandbox Code Playgroud)

在Jenkins构建之后,如果版本是10,那么AssemblyInfo.cs将包含:

[assembly: AssemblyVersion("1.0.10")]
[assembly: AssemblyFileVersion("1.0.10")]
Run Code Online (Sandbox Code Playgroud)

该插件用于实现上述目的:

Assembly Version: $BUILD_NUMBER
FileName: 
RegexPattern: Assembly(\w*)Version\("(\d+).(\d+).(\*)"\)
ReplacementPattern: Assembly$1Version("$2.$3.%s")
Run Code Online (Sandbox Code Playgroud)

我在使用插件时遇到的另一个错误是文件权限不允许写访问.为了解决这个问题,找到AssemblyInfo.cs并禁用"只读".

希望能帮助任何人.


Nir*_*man 5

酷,我自己找到了答案。

基本上,我必须在“更改程序集版本”插件的“程序集版本”字段中提供“1.0.0.$BUILD_NUMBER”