代码之家  ›  专栏  ›  技术社区  ›  Rob Gray

使用热修复程序对分布式应用程序的程序集进行版本控制

  •  4
  • Rob Gray  · 技术社区  · 17 年前

    我想知道发布热修复程序的典型版本控制策略是什么,或者只是应用程序的几个组件。

    我们的问题跟踪软件包含整个产品的版本号。如果当前版本为1.4.5且需要修补程序,则修补程序的问题将针对1.4.6发布。受1.4.6修复程序影响的所有程序集的版本均为1.4.6。如果我们只分发这些文件,那么最终会得到版本1.4.5上的一些文件和版本1.4.6上的一些文件。

    解决方案可以是按照1.4.6重新构建和发布整个应用程序,但这将需要重新部署多台计算机上的多个组件,并导致实际没有更改的组件出现不必要的停机。

    人们对此问题采取了哪些策略?接受某些文件将有不同的版本号只是一个问题吗?在过去,我发现这会引起与客户(1级)支持团队的混淆。

    1 回复  |  直到 17 年前
        1
  •  2
  •   Daniel Fortunov    17 年前

    你提出了一个有趣的问题。

    这是一个真正的决策,你需要决定你的部署和版本控制策略,并考虑各种因素的权衡(你已经注意到的一些因素,比如客户混淆)。

    您可以做的一件事是分离各个层的发布和版本控制,这将允许您在一个层内进行一致的版本控制,同时减少修补程序部署开销。您还需要将公共程序集分解成一个独立的包和版本。

    这可能有点过分,所以另一种方法是让版本控制更容易掌握。例如,您可以保留部分版本号以指示修补程序。例如,如果1.4.5.0是正式版本,则修补程序将是1.4.5.1,这很容易理解为1.4.5正式版本的一部分。

    您还可以使用其他程序集版本,例如 AssemblyInformationalVersion 为用户存储版本信息。(退房 my blog post 汇编信息版本