gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:14:19 26 4
gpt4 key购买 nike

我们将关注 Semantic Versioning对于我们的web 应用程序,它看起来非常好。现在,Jenkins 用作 CI/CD 工具。我们想使用 Octopus Deploy作为工件存储和 CD 工具,也用于快速重新部署/回滚和其他配置功能。<​​/p>

Octopus 需要具体版本的软件包(例如:1.2.4)。因此,我们还需要为我们的 Web 应用程序进行强版本控制。否则,如何检测部署的版本和有错误。

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

[assembly: AssemblyVersion("1.0.*")]

因为,补丁版本应该从0开始逐一递增,而不是从“随机”数字递增,并在Minor递增后重置。

在我看来 - 最好将版本存储在与包中相同的 View (1.2.4) 中的存储库中。但我发现只有这种方式来实现它:

  • 提交前手动递增 - 令人不安且存在风险。
  • 提交前从 SVN/Git Hook 自动递增 - 需要配置每个工作站。
  • 通过 CI 工具自动递增并提交 - 通过 CI 监控存储库中的更改来实现循环依赖。

是否有任何其他方法可以像在存储库中一样在 Web 应用程序包中实现相同的版本控制?或者也许这是不必要的?

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

最佳答案

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

我建议您可以 checkout 代码并执行搜索和替换 以始终注入(inject)正确的程序集内部版本号,例如 [Major.Minor.Build]。 [Major.Minor] 将作为输入并全局感知团队,从而减少错误的 dll 编号/内部版本号可以正向递增并与 CI 的编号匹配以进行跟踪。 SVN 提交号也可以混用。

关于.net - 如何根据语义版本控制自动增加 Web 应用程序版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42482878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com