移除修补程序

可以从修补序列中移除不应再使用的修补程序。 此操作可防止在修补目标应用程序时应用不应再使用的修补程序。 这与删除已应用于应用程序的修补程序不同。 有关删除已应用的修补程序的信息,请参阅删除修补程序

**Windows Installer 3.0 及更高版本:**

具有 MsiPatchSequence 表的修补程序可以使用此表从修补序列中移除其他修补程序。 修补程序可移除修补序列中在其之前的修补程序,并将这些修补程序的信息替换为自己的信息。 指定要移除哪些修补程序的修补程序和要移除的修补程序都必须具有包含信息的 MsiPatchSequence 表。

如果要移除的修补程序和替换后的修补程序都不含 MsiPatchSequence 表,则修补程序包可在其修订号摘要属性中指定要从修补序列中移除的修补程序列表。 如果要移除的修补程序或替换后的修补程序都含有 MsiPatchSequence 表,则 Windows Installer 3.0 会忽略此列表。

如果修补程序包中包含的修补程序有些含有 MsiPatchSequence 表中的序列信息,而有些没有,Windows installer 3.0 会按以下修补程序排序部分中所述的顺序对这些修补程序进行排序。

例如,Patch1、Patch2 和 Patch3 是三个不含 MsiPatchSequence 表的修补程序。 Patch2 仅在 Patch1 已应用于应用程序时才适用。 Patch3 是更高版本的修补程序,它包含 Patch1 的所有信息,并且还会从修补序列中移除 Patch1。 换句话说,当应用 Patch3 时,Patch2 也会变为不适用,因为它需要 Patch1。 单独应用 Patch2 时,该修补程序中的任何信息都不会传递到应用程序。

Windows Installer 2.0:不支持。 唯一可用的方法是在修订号摘要属性中指定要从修补序列中移除的修补程序列表。

注意

修补程序作者应使用 MsiDeterminePatchSequenceMsiDetermineApplicablePatches 函数来确定实际应用于产品的修补程序序列,因为移除某些修补程序可能会使其他修补程序不适用。