.net Jenkins-如何根据程序集版本设置生成版本号?

.net Jenkins-如何根据程序集版本设置生成版本号?,.net,jenkins,msbuild,assemblyversionattribute,.net,Jenkins,Msbuild,Assemblyversionattribute,StackOverflow或其他博客上的许多问题说明了如何使用Jenkins build number和change assembly version插件在AssemblyInfo.cs文件中设置AssemblyVersion 但我正试图做相反的事情——将jenkins构建版本设置为AssemblyInfo.cs中的版本?很明显,我会在源代码被删除后再这样做 我为什么要这样做? 原因:我想同步以下四个“组件” My AssemblyInfo.cs,例如[assembly:AssemblyVers

StackOverflow或其他博客上的许多问题说明了如何使用Jenkins build number和change assembly version插件在AssemblyInfo.cs文件中设置AssemblyVersion

但我正试图做相反的事情——将jenkins构建版本设置为AssemblyInfo.cs中的版本?很明显,我会在源代码被删除后再这样做

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

  • My AssemblyInfo.cs,例如[assembly:AssemblyVersion(“2.10.*)] 是我的主次版本控制的“真相来源”

  • 在构建时,我会将版本更新为,例如2.10.73 其中73来自${BUILDS\u ALL\u TIME}

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

  • 我计划用Jenkins构建的名称标记/标记我们的源代码管理

  • 所以我希望我的詹金斯建筑名是,例如。 MyProject.2.10.73

  • 我能做这个吗? 也就是说,我希望在源代码管理中的AssemblyInfo.cs中设置major.minor版本


    谢谢

    感谢苏雷什为我指明了正确的方向

    我最后 1) 使用EnvInject插件(作为构建操作)

    2) 编写自己的PowerShell脚本以读取我的AssemblyInfo.cs文件并输出我的环境属性 看到这个帖子了吗

    3) 使用Build Name Setter插件在生成后更改名称

    您在运行时设置了版本号,但没有设置版本号,而且版本号应该是唯一的,这是Jenkins存储版本工件的基本单元。使用BuildNameSetter插件,您可以设置要生成的自定义名称,有很多方法可以从环境变量中形成名称。您必须找到一种从文件中读取程序集版本的方法,并将其作为env变量放置,从这里您可以使用它来设置构建名称。