Jenkins - 如何根据程序集版本设置构建版本号?

时间:2017-06-23 18:58:38

标签: .net jenkins msbuild assemblyversionattribute

StackOverflow或其他博客上的许多问题都表明如何使用Jenkins内部版本号和更改程序集版本插件在AssemblyInfo.cs文件中设置AssemblyVersion。

但是我试图做相反的事情 - 将jenkins构建版本设置为AssemblyInfo.cs中的版本?显然,我会在源代码被删除后执行此操作。

为什么我要这样做? 原因:我想同步以下四个组件'

  1. 我的AssemblyInfo.cs,例如[assembly:AssemblyVersion(" 2.10。*")] 是我的真相来源" for major.minor versioning

  2. 在构建时,我会将版本更新为,例如73年2月10日 其中73来自$ {BUILDS_ALL_TIME}

  3. 我们将代码发布到内部nuget服务器, 所以我喜欢nuget包的版本,例如73年2月10日

  4. 我计划使用Jenkins Build的名称标记/标记我们的源代码控制

  5. 所以我喜欢我的jenkins构建名称,例如   MyProject.2.10.73

  6. 我可以这样做吗? 也就是说,我喜欢在我的AssemblyInfo.cs中设置的major.minor版本,它是源代码控制。

    谢谢!

1 个答案:

答案 0 :(得分:1)

感谢Suresh指出我正确的方向。

我结束了 1)使用EnvInject插件(作为构建操作)

https://wiki.jenkins.io/display/JENKINS/EnvInject+Plugin

2)写了我自己的PowerShell脚本来读取我的AssemblyInfo.cs文件并输出我的环境属性 看这篇文章

https://i-script-stuff.electric-horizons.com/environment-inject-variable-with-powershell-and-jenkins/

3)使用Build Name Setter插件然后在构建之后更改名称

https://wiki.jenkins.io/display/JENKINS/Build+Name+Setter+Plugin