如何创建补丁系统

How to create a patch system

我对制作我们的软件的最佳实践有疑问 "patch-able"。

一些关于我们的信息 product/company:

  1. 我们使用 C#/WPF 创建我们的软件
  2. 使用 Visual Studio 2013
  3. 有一些安装程序(高级安装程序)
  4. 使用 TFS 进行源代码控制。

每次我们创建一个release,我们都会把它放入tfs中的一个新分支,这样结构看起来是这样的:

现在我遇到了问题,我不知道如何在不为每个版本打补丁的情况下让我们的产品打补丁。因为如果版本 1.0.0.0 和 2.2.0.0 存在错误并且我不想安装最新版本 (3.3.0.0),我需要修复这两个版本(1.x 和 2.x) .

有什么方法可以让我更优雅、更舒适吗?

谢谢!

根据我的经验,并非如此 - 我曾经在一个非常大的项目上工作,该项目的客户使用许多不同的版本,错误修复应用于所有版本并打补丁 - 这通常是一个手动(且乏味)的过程,由于代码库在不同版本之间经常发生充分变化,因此您不能简单地合并更改。 尽可能鼓励客户升级,并尽可能使用 TFS 的合并功能。

您应该转向持续交付模型。您需要更改设计产品的方式,以便可以在任何其他版本之上安装任何版本。如果您还确保对完成有一个明确的定义,并且交付周期很短,那么您将永远不需要安装补丁。只需发布一个包含您尚未准备好显示的功能的新版本即可。

查看 http://stories.visualstudio.com 看看 howba large 产品解决了这个问题。

如果您正在考虑 "that looks too hard" 那么您可能有过多的技术债务(或者更准确地说是未对冲的基金),您需要首先解决这个问题。

查看代码的功能标志和数据库的 Ready Roll 或 SSDT。