要做到这一点,我需要检查它是否已经安装,所以我可以绕过它.
我需要产品代码在InstallCheck中添加新的MsiProductCheck,然后检查其值并在安装时绕过它.
可以将MsiProductCheck与KB修补程序一起使用,还是应该使用另一个InstallCheck?
问候
解决方法
如果您不想安装它,并且您对MSI有所了解,当然您可以找到ProductCode,如果它是MSI KB.
两种常见类型:
KB文件具有后缀.exe – 其中包含.msp(补丁)文件.您可以使用鼠标右键打开.exe,例如解压缩程序. 7zip(不要双击,将安装它).然后使用Insted(google for it)等工具查看.msp文件.
但补丁没有自己的ProductCode,它们有自己的GUID和补丁完整的MSI,它们都有自己的ProductCodes.也许更多的MSI专家,这个东西.两个GUID都在摘要信息中,这不是普通表.
我不知道“MsiProductCheck”判断,你要做什么来使用这个信息.
KB文件后缀为.msu(是的,不是.msi) –
然后,您可以使用任何MSI编辑器(如平台SDK)或Insted(再次)阅读ProductCode.查看属性表,它就在那里.
大多数情况下,依靠ProductCodes不推荐.如果您确定,您希望将该KB作为先决条件,那就没问题.对于KB以外的其他东西,我根本不会建议这样做.
更好:如果可能的话,我会搜索KB执行的文件/注册表更改,并在程序中自己使用它(例如文件版本或注册表GUID)来检查它是否已安装.文件版本(如果已更改)是一种很好的做法,因为您不仅仅依赖于一个修补程序,例如下次更改包含在ServicePack或新Windows版本等中时.
我已经完成了诸如书面程序之类的事情,以确保根据不同的Windows版本确保许多不同的先决条件,我可以说,要完美,有时这是艰苦的工作,你可以花费数周和数月的时间.