Visual studio安装程序项目更新或修补某些dll文件



我有一个Visual studio 2010项目a和一个安装项目SetupProject。

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

根据本使用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. 你会建议除此修补解决方案之外的其他解决方案吗?这个解决方案的问题是它计算两个版本之间的delta差异,所以我认为这就是为什么它需要按顺序应用补丁的原因。如果有一个解决方案说"只覆盖这些特定的dll",那就太好了

严格来说,Visual Stusio只支持RemovePreviousVersions升级,所以大多数处于您位置的人可能会选择另一个更支持补丁的工具。

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

最新更新