创建没有第二个MSI的补丁

时间:2017-10-31 10:46:19

标签: wix windows-installer patch

我相信Patch的工作原理是通过比较现有的MSI(第一个)和新的MSI(第二个MSI)来创建转换。我有一个客户要求(不要问我为什么)不创建第二个MSI,还有另一个选项来创建补丁。这可能吗?如果是的话,您能否提供详细信息?如果没有,你能否提供证实这一点的链接/证据?

1 个答案:

答案 0 :(得分:1)

由于所有文件只是字节的集合,因此很难证明不可能。但是,Microsoft编写的唯一一种创建补丁(.msp文件)的方法是调用patchwiz.dll(可能通过msimsp.exe)来处理两个或多个安装数据库(.msi文件)之间的差异。 Creating a Patch Package更详细地介绍了此过程。

如果你超越了这个,跳过msimsp.exe / patchwiz.dll从而避免在这里创建升级的.msi文件,你仍然需要创建transform substorage中的转换。 generate a transform(.mst文件)唯一记录的方法仍然需要两个安装数据库,因此您需要第二个.msi文件用于此步骤。

如果你弄清楚如何在没有一对.msi文件的情况下生成.mst文件,那么理论上也可以将它们全部打包成一个.msp文件。但是,我还没有看到关于如何做到这一点的足够文档。

(无论是作为评论,编辑还是替代答案,都会非常感激地接受该文件的指示。)