【问题标题】:How to create a patch system如何创建补丁系统
【发布时间】:2015-01-23 13:16:12
【问题描述】:

我有一个关于使我们的软件“可修补”的最佳做法的问题。

关于我们的产品/公司的一些信息:

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

每次我们创建一个release,我们都会把它放到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)。

有没有办法让这对我来说更优雅和舒适?

谢谢!

【问题讨论】:

    标签: c# .net tfs patch


    【解决方案1】:

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

    【讨论】:

    • 好吧,我们不得不这样,因为我们不能一直轻松地进行更新,因为有些更新需要手动帮助(我们的 sciprt 系统中的 API 更改等等)。跨度>
    【解决方案2】:

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

    查看http://stories.visualstudio.com,了解大型产品如何解决问题。

    如果您认为“这看起来太难了”,那么您可能有太多的技术债务(或更准确地说是未对冲基金),您需要先解决这个问题。

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

    【讨论】:

    • 我认为您是对的,因此我将您的帖子作为答案:If you are thinking "that looks too hard" then you are likely have too much technical debt (or more acuratly unhedged fund) and you need to address that first.。这是真的,也是我们的核心问题之一。谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    相关资源
    最近更新 更多