我如何才能将预发布版本升级到生产环境,并嵌入新版本,而无需重新构建? [英] How can i promote a pre-release build to production, and have the new version embedded, without a rebuild?

查看:13
本文介绍了我如何才能将预发布版本升级到生产环境,并嵌入新版本,而无需重新构建?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

八年后,我遇到了与nuget feeds and promotions相同的问题!

在这种情况下,我说的更笼统;我们使用ProGet作为我们的包管理器,并且在包升级过程中有块块、通用包,甚至一些码头容器需要考虑。

其中一个想法是有几个Nuget提要;一个ci提要,其中每个成功的集成都发布一个包;一个Qa提要,您只发布您希望QA测试的版本,然后是一个Release提要,其中您只复制他们成功测试的Qa提要中的包。

所以,假设我们在ci提要中有一个可以工作的构建,它的版本是1.2.3-ci-xyz。我们希望将其推广到QA提要,而无需重新构建,并将其重新打包为1.2.3-rc-1。该包通过了质量保证,并准备好升级到生产饲料中,不需要重建,并可以运往生产。它应该以1.2.3的形式发货。(对吗?)

问题是,如果我们不进行任何重新构建,包二进制文件仍将具有版本1.2.3-ci-xyz。它将显示在应用程序中显示或查询版本的任何位置。

这就是我被卡住的地方。这里的合适图案是什么?只要我们知道是什么版本,发货的版本重要吗?

  • 意思是,我们将1.2.3-ci-xyz从较低的Feed提升到较高的Feed,而不会使用不同的版本重新打包?
  • 1.2.3包含二进制文件1.2.3-ci-xyz是不是不正确?
  • 我们是否总是使用下一个3位数字构建,而忘记ci/rc后缀?

推荐答案

我将通过内部支持渠道分享此答案:)

这是我们(Inedo)通常在库中处理此问题的方式。简短的答案是:

  • 我们将程序集版本设置为Major.Minor.Patch
  • 我们将程序集文件版本设置为Major.Minor.Patch.Build
  • 我们将包版本设置为Major.Minor.Patch-ci.Build(然后重新打包为Major.Minor.Patch-rc.Build,然后重新打包为Major.Minor.Patch)
  • 我们还使用汇编信息版本来显示友好版本(例如:版本6.0.0(Build 36-V6))

这使我们无需重新构建即可重新打包。我们还将在产品构建期间检测这些预发布依赖项,并防止它们发布到生产中。您可以查看我们的ProGet V6版本作为示例:ProGet 6.0.0 Build 36

我觉得较长的答案在我们的博客帖子Best Practices for Versioning NuGet Packages in the Enterprise中得到了很好的回答。

这篇关于我如何才能将预发布版本升级到生产环境,并嵌入新版本,而无需重新构建?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆