.net 如何根据语义版本控制自动增加web应用程序版本?

.net 如何根据语义版本控制自动增加web应用程序版本?,.net,jenkins,octopus-deploy,semantic-versioning,.net,Jenkins,Octopus Deploy,Semantic Versioning,我们将关注我们的web应用程序,它看起来真的很不错。现在,Jenkins被用作CI/CD工具。我们希望用作工件存储和CD工具,也用于快速重新部署/回滚和其他配置功能 八达通需要具体版本的软件包(例如:1.2.4)。因此,我们还需要对web应用程序进行强大的版本控制。否则,如何检测部署了哪个版本并存在bug 描述的解决方案不透明,并且与语义版本控制不完全匹配: [assembly: AssemblyVersion("1.0.*")] 因为,补丁版本应该从0开始逐个递增,而不是从“随机”数开始递增

我们将关注我们的web应用程序,它看起来真的很不错。现在,Jenkins被用作CI/CD工具。我们希望用作工件存储和CD工具,也用于快速重新部署/回滚和其他配置功能

八达通需要具体版本的软件包(例如:1.2.4)。因此,我们还需要对web应用程序进行强大的版本控制。否则,如何检测部署了哪个版本并存在bug

描述的解决方案不透明,并且与语义版本控制不完全匹配:

[assembly: AssemblyVersion("1.0.*")]
因为,补丁版本应该从0开始逐个递增,而不是从“随机”数开始递增,并在递增后重置

在我看来,最好将版本存储在与包中相同的视图(1.2.4)中的存储库中。但我只找到了实现它的方法:

  • 提交前手动增量-不舒服且有风险
  • 提交前从SVN/Git钩子自动递增-需要配置每个工作站
  • 从CI工具和提交中自动递增-通过CI监视存储库中的更改来实现循环依赖
是否有其他方法可以实现与存储库中相同的版本控制,如web应用程序包中的版本控制?或者这是不必要的


更新2017-02-28:我们发现Jenkins可以跳过特定用户或特定消息的提交(在高级设置中)。它解决了从CI工具自动递增和提交(CI监视和存储库中的更改之间的循环依赖)的问题。

大多数开发人员未能在代码中提交正确的程序集版本。假设您有40个项目和15个开发人员,那么维护
[assembly:AssemblyVersion(“1.0.*)]]
版本将始终是一个问题


我建议您可以签出代码并执行搜索和替换,以始终注入正确的程序集内部版本号,如[Major.Minor.build]。[Major.Minor]作为输入,对团队具有全局意识,从而减少错误的dll编号/构建编号,可以积极增加并与CI的编号匹配,以便跟踪。SVN提交编号也可以与之混合。

您的CD/CI管道的哪一部分产生了Octopus将使用的包?在连续构建之后,Jenkins将包打包并推送到Octopus,并自动部署到开发环境。什么运行构建?我这样问是因为在我们的商店里,构建定义是版本设置的地方。也;你们看到Jenkins了吗?如果存储库包含更改,Jenkins会每小时自动运行一次构建。谢谢,我们将尝试看看这个插件。现在,我们实现了用于版本增量的自定义简单exe工具。@gvee,很有趣,但是这个插件破坏了我们的Jenkins服务器,我们需要重新安装它们:)非常感谢,我得到了确认-将SemVer存储在存储库中是个好主意。:)我们发现Jenkins可以跳过特定用户的提交(在高级设置中),它解决了CI监视和存储库中的更改之间的循环依赖性问题。