Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
Windows installer MSP文件是如何工作的?_Windows Installer_Msp_Msi Patch - Fatal编程技术网

Windows installer MSP文件是如何工作的?

Windows installer MSP文件是如何工作的?,windows-installer,msp,msi-patch,Windows Installer,Msp,Msi Patch,如果我有一个由两个msi的A.msi(旧)和B.msi(新)创建的msp文件AB.msp,那么可以将AB.msp应用于安装了A.msi的环境是很自然的。但是,假设在A.msi和B.msi之间还有几个msi,比如说C1.msi,C2.msi。。。在这里,我不太明白AB.msp如何能够均匀地应用到安装了这些Cn.msi之一的环境中。AB.msp是根据A.msi和B.msi之间的差异创建的。所以,正如我所想,它只知道两个微星的区别 例如,假设a.msi中的文件F1.exe首先在C3.msi中更改,然后

如果我有一个由两个msi的A.msi(旧)和B.msi(新)创建的msp文件AB.msp,那么可以将AB.msp应用于安装了A.msi的环境是很自然的。但是,假设在A.msi和B.msi之间还有几个msi,比如说C1.msi,C2.msi。。。在这里,我不太明白AB.msp如何能够均匀地应用到安装了这些Cn.msi之一的环境中。AB.msp是根据A.msi和B.msi之间的差异创建的。所以,正如我所想,它只知道两个微星的区别

例如,假设a.msi中的文件F1.exe首先在C3.msi中更改,然后在B.msi中回滚。那么AB.msp可能认为A.msi和B.msi之间的文件F1.exe没有区别。因此,它无法正确应用于安装了C3.msi(具有不同的F1.exe)的环境。 但事实并非如此。实际上,上面的AB.msp(可能)适用于安装了Cn.msi的任何环境。我不知道该怎么解释


谢谢。

通常,您也应该将Cn msi作为目标添加到修补程序项目中,即A.msi、C1.msi、C2.msi,。。。应该是目标,B.msi应该是升级的映像。这样,构建的MSP将包含正确应用于所有MSP所需的所有信息。现在,它可以应用于您的Cn MSI的唯一方法是,如果在这些MSI中,您在增加版本时没有生成新的升级代码,并且当然保持MSI名称不变(主要规则之一:)对不起,我的意思是“在增加版本时生成新的产品代码…”