Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 创建没有第二个MSI的修补程序_Wix_Windows Installer_Patch - Fatal编程技术网

Wix 创建没有第二个MSI的修补程序

Wix 创建没有第二个MSI的修补程序,wix,windows-installer,patch,Wix,Windows Installer,Patch,我相信补丁的工作原理是通过比较现有的MSI 1st和新的MSI 2nd来创建一个转换。我有一个客户要求,不要问我为什么不创建第二个MSI,还有另一个选项来创建补丁。这可能吗?如果是,请提供详细信息?如果没有,你能提供链接/证明吗?因为所有文件都是字节的集合,很难证明这是不可能的。但是,Microsoft记录的创建修补程序.msp文件的唯一方法可能是通过msimsp.exe调用,以处理两个或多个安装数据库.msi文件之间的差异。更详细地描述此过程 如果您通过了此操作,跳过msimsp.exe/pa

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

因为所有文件都是字节的集合,很难证明这是不可能的。但是,Microsoft记录的创建修补程序.msp文件的唯一方法可能是通过msimsp.exe调用,以处理两个或多个安装数据库.msi文件之间的差异。更详细地描述此过程

如果您通过了此操作,跳过msimsp.exe/patchwiz.dll,从而避免在此处创建升级的.msi文件,那么您仍然需要创建文件中的转换。唯一有文档记录的访问.mst文件的方法仍然需要两个安装数据库,因此此步骤需要第二个.msi文件

如果您知道如何在没有一对.msi文件的情况下生成.mst文件,那么从理论上讲,也可以将其打包成一个.msp文件。然而,我还没有看到足够的关于如何做到这一点的文档


无论是作为评论、编辑还是备选答案,指向该文档的指针都将被感激地接受。

你的意思是?是的。我的意思是创建一个没有第二个MSI的MSP文件。如果您创建一个更新的MSI文件,然后使用它创建补丁,然后给他们补丁,为什么客户会在意?他们从来没有看到第二个微星,只是那个补丁。构建补丁是您的内部开发过程,与需求无关。我很确定我创建了一个MSI,但打开了一个MSI数据库,在内存中对其进行更改,然后生成MST。这就是虎鲸所做的。我怀疑Ven可能想看看InstallShield的QuickPatch项目类型。当然,但我认为所有这些场景都会创建第二个.msi文件。虽然它们可能是暂时的,在你考虑之前就被删除了。基本概念是提议的需求对我来说毫无意义。你不需要分发它,但是仍然需要制作.msi文件。补丁只是一种已经在运行的升级的交付机制——我知道我在几年前第一次看到补丁时读过这句话。当时我对这个事实感到非常惊讶。鉴于这一事实,在没有两个MSI文件进行比较的情况下,生成修补程序肯定是不可能的?正如Michael所说,必须至少生成一个临时MSI文件。