我需要将KB Hotfix添加到我的应用程序的先决条件中,我将通过为它创建bootstrapper包来实现。
首先,我需要检查它是否已经安装,以便我可以绕过它。
我需要产品代码在InstallCheck中添加新的MsiProductCheck,然后检查其值并在安装时绕过它。
可以将MsiProductCheck与KB修补程序一起使用,还是应该使用另一个InstallCheck?
此致
答案 0 :(得分:3)
有许多不同类型的KB。
如果您不想安装它,并且您对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版本提供许多不同的先决条件,我可以说,为了完美,有时这是一项艰苦的工作,你可以花费数周和数月的时间。