4

我需要将 KB Hotfix 添加到我的应用程序的先决条件中,我将通过为它创建引导程序包来做到这一点。

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

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

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

问候

4

1 回答 1

3

有许多不同类型的 KB。

如果您不想安装它,并且您对 MSI 有点了解,当然您可以找到 ProductCode,如果它是 MSI KB。

两种常见类型:

KB 文件具有后缀 .exe - 其中包括一个 .msp(补丁)文件。您可以用鼠标右键打开 .exe,使用解包器如 7zip(不要双击,它将安装它)。然后使用像Insted(google for it)这样的工具来查看 .msp 文件的内部。但是补丁没有自己的 ProductCode,它们有自己的 GUID,并且补丁完整的 MSI 有自己的 ProductCode。对于 MSI 专家来说,这些东西可能更多。两个 GUID 都在摘要信息中,这不是普通表。我不知道“MsiProductCheck”来判断,你必须做什么才能使用这个信息。

KB 文件的后缀为 .msu(是的,不是 .msi)- 然后您可以使用任何 MSI 编辑器(如 Orca(在平台 SDK 中)或 Insted(再次))读取 ProductCode。看看属性表,就在那里。

大多数时候不推荐依赖 ProductCodes。如果您确定,您确切地想要那个 KB 作为先决条件,没关系。对于知识库以外的其他东西,我根本不建议这样做。

更好:如果可能,我会搜索 KB 执行的文件/注册表更改,并自己在程序中使用它(例如文件版本或注册表 GUID)来检查它是否已安装。文件版本(如果已更改)是一种很好的做法,因为您不仅仅依赖于一个修补程序,例如下次更改包含在 ServicePack 或新的 Windows 版本中等时。

我已经完成了诸如编写程序之类的事情,以确保根据不同的 Windows 版本满足许多不同的先决条件,而且我可以说,要做到完美,有时这是一项艰苦的工作,你可以花费数周和数月的时间。

于 2013-08-06T22:38:16.203 回答