2015-11-18 117 views
0

我有一个Visual Studio 2010项目A和一个安装项目SetupProject。Visual Studio安装项目更新或修补某些dll文件

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

继使用Orcamsimsp这个patching指南,我可以创造我安装一个补丁解决方案。

问题是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”

回答

0

严格地说视觉Stusio suports只有RemovePreviousVersions升级,所以大多数人在你的位置,也可以选择其他的工具,有更多的支持修补。

无论如何,你为什么要为1.0.1创建一个补丁到1.0.2?大多数人建立一个积累的补丁。只要你需要1.0.0版本就可以了,并且针对MSI修复所有的修补程序,这些修补程序会不断积累修补程序。你增加你的MSI版本,创建一个新的补丁GUID,并在PCP文件中说这个新的补丁替代了ListOfPatchGUIDsToReplace中的以前的补丁。

+0

感谢您的回复。我需要补丁101_To_102,因为如果他们已经安装了补丁100_To_101,我的程序现在在101,并且不会接受补丁100_To_102。 – Kenny

+0

我不认为你会这样做,这是我的答案。只需构建1.0.0到1.0.2的补丁,并说它超过了1,0.1补丁。 – PhilDW

相关问题