从KB修补程序中提取产品代码以在引导程序中使用

时间:2013-04-11 13:30:55

标签: deployment windows-installer clickonce bootstrapper

我需要将KB Hotfix添加到我的应用程序的先决条件中,我将通过为它创建bootstrapper包来实现。

首先,我需要检查它是否已经安装,以便我可以绕过它。

我需要产品代码在InstallCheck中添加新的MsiProductCheck,然后检查其值并在安装时绕过它。

可以将MsiProductCheck与KB修补程序一起使用,还是应该使用另一个InstallCheck

此致

1 个答案:

答案 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版本提供许多不同的先决条件,我可以说,为了完美,有时这是一项艰苦的工作,你可以花费数周和数月的时间。