1

我有一个 Visual Studio 2010 项目 A 和一个安装项目 SetupProject。

我想通过更新几个dll,即a.dll(A的主要输出)和b.dll(A依赖的其他一些dll)来解决在一台机器上修补/升级安装的解决方案。

按照这个使用and的补丁指南,我可以为我的安装程序创建一个补丁解决方案。Orcamsimsp

问题是msimsp需要一个目标来与较新的安装程序进行比较,这意味着我必须特别说“这是一个从 1.0.1 到 1.0.2 的补丁”,并且这个补丁要求当前安装的版本是 1.0.1。我不能用它来修补 1.0.0 安装。

换句话说,补丁必须一个接一个地按顺序应用。

我的问题是:

  1. 如何使用 Patch_101_To_102 将任何版本 1.0.x 升级到 1.0.2 安装,而无需通过 1.0.1 补丁?

  2. 您会建议除此修补解决方案之外的其他解决方案吗?这个解决方案的问题在于它计算了两个版本之间的差异,所以我认为这就是它需要按顺序应用补丁的原因。有一个解决方案说“仅覆盖这些特定的 dll”会很棒

4

1 回答 1

1

严格来说,Visual Stusio 仅支持 RemovePreviousVersions 升级,因此您所在位置的大多数人可能会选择另一个对修补有更多支持的工具。

无论如何,你为什么要为 1.0.1 到 1.0.2 创建补丁?大多数人构建一个累积补丁。只要您需要,只需保留 1.0.0 版本,并针对不断积累修复的 MSI 构建您的所有补丁。Youd 增加您的 MSI 版本,创建一个新的补丁 guid,并在 PCP 文件中说这个新补丁取代了以前的补丁,在 ListOfPatchGUIDsToReplace 中。

于 2015-11-18T18:37:15.320 回答