1

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

但我试图做相反的事情 - 将 jenkins 构建版本设置为 AssemblyInfo.cs 中的版本?显然,我会在源代码被拉下后这样做。

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

  1. 我的 AssemblyInfo.cs,例如 [assembly: AssemblyVersion("2.10.*")] 是我的 major.minor 版本控制的“事实来源”

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

  3. 我们将代码发布到我们的内部 nuget 服务器,所以我希望 nuget 包的版本是,例如 2.10.73

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

  5. 所以我希望我的詹金斯构建名称是,例如 MyProject.2.10.73

我可以这样做吗?即,我希望在源代码控制中的 AssemblyInfo.cs 中设置 major.minor 版本。

谢谢!

4

1 回答 1

1

感谢 Suresh 为我指明了正确的方向。

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

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

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

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

3) 使用 Build Name Setter Plugin 在构建后更改名称

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

于 2017-06-26T19:30:16.340 回答