一个 build\release 适用于所有环境 vs 多个 biulds\releases 适用于所有环境

One build\release for all environments vs multiple biulds\releases for all environments

在我当前的设置中,这是正在发生的事情,

然后,

现在的问题是我们只有 1 个代理(不知道为什么),这种情况并不经常发生,但有时我们需要快速构建和发布修补程序,但每次构建需要大约 10 分钟以上,而且不能运行 与其他版本并行。发布也一样。因此,将修补程序部署到生产环境仅需 2 小时左右的痛苦过程。

需要单独构建:

为什么我们不应该为所有环境创建一个 build\release?假设会有变通办法为不同的配置创建不同的工件,或者我们可能只是在 azure 或类似的东西上使用应用程序设置。

虽然这个问题倾向于获得主要基于意见的答案 (more info here),但我 将继续回答它。

就我而言,您应该只有一个构建并且让工件在所有*环境中传播。二进制文件(工件)不会改变,只有它们的配置会改变。这是您可以确保不同环境下的代码运行没有任何差异的唯一方法。

* 您的开发环境 might/can 是一个特殊的 cookie。一些 Dev 环境使开发人员能够进行远程调试和此类任务,因此在您的 Dev 环境上构建 Debug 很有意义。