如何创建一个补丁系统

3
我有一个关于如何使我们的软件“可补丁”的最佳实践问题。
我们产品/公司的一些信息:
1. 我们使用C# / WPF创建我们的软件 2. 使用Visual Studio 2013 3. 有一些设置制造商(高级安装程序) 4. 使用TFS进行源代码控制。
每次发布新版本时,我们将其放入TFS中的新分支中,以便结构看起来像这样:
- 主要 - 发布版 - ---- 版本1.0.0.0 - ---- 版本2.2.0.0 - ---- 版本3.3.0.0(不是真正的版本号)。
现在我遇到了一个问题,我不知道如何使我们的产品可补丁,而不必为每个版本都制作一个补丁。因为如果一个错误存在于版本1.0.0.0和2.2.0.0中,而我不想安装最新版本(3.3.0.0),我需要修复两个版本(1.x和2.x)。
是否有一种更优雅、更方便的方法呢?
谢谢!
2个回答

3

根据我的经验,实际上并不是这样的 - 我曾经在一个非常大的项目上工作,该项目有许多不同版本的客户端,修复了所有版本的错误并进行了补丁 - 这通常是一个手动(且繁琐)的过程,因为代码库在版本之间经常发生了足够大的变化,所以你不能简单地合并更改。 尽可能鼓励客户升级,并在可能的情况下利用TFS的合并功能。


好的,那么我们必须采取这种方式,因为我们不能一直轻松地进行更新,因为有些更新需要手动帮助(例如脚本系统中的API更改等)。 - BendEg

1
你应该采用持续交付模式。需要改变产品的工程方式,以便可以在任何其他版本之上安装任何版本。如果确保有一个明确的完成定义和短的交付周期,那么您将永远不需要安装补丁。只需发布一个新版本,其中包含您尚未准备好显示的功能关闭。
查看http://stories.visualstudio.com,了解如何解决大型产品的问题。
如果您认为“这看起来太难了”,那么您可能有太多技术债务(或更准确地说是未对冲基金),需要先解决这个问题。
了解代码功能标志、Ready Roll或SSDT数据库。

我认为你是正确的,我标记了你的帖子并将其作为答案,因为这个原因:如果你认为“那看起来太难了”,那么你很可能有太多的技术债务(或更准确地说是未对冲的基金),你需要先解决这个问题。 这是真的,也是我们的核心问题之一。谢谢 :) - BendEg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接