MsiPatchSequence-Tabelle

Die MsiPatchSequence-Tabelle enthält alle Informationen, die das Installationsprogramm benötigt, um die Reihenfolge der Anwendung eines Patches für kleine Updates relativ zu allen anderen Patches zu bestimmen. Die Tabelle muss sich in der Datenbank der Patchdatei befinden. Sie darf sich nicht in einer Transformation im Patch befinden. Das Installationsprogramm ignoriert diese Tabelle, wenn ein Patch für ein Hauptupgrade angewendet wird. Bei Anwendung eines Patches für ein Nebenupgrade verwendet das Installationsprogramm diese Tabelle nur, um ersetzte Patches anzugeben, die nicht sequenziert werden dürfen.

Die MsiPatchSequence-Tabelle umfasst die folgenden Spalten.

Spalte Typ Schlüssel Nullwerte zulässig
PatchFamily Identifier J N
ProductCode GUID J J
Sequenz Version N N
Attribute Integer N J

 

Spalten

PatchFamily

Gibt an, dass der Patch ein Mitglied der in diesem Feld genannten Patchfamilie ist. Patches in derselben Patchfamilie, die auf dieselbe Produktversion abzielen, werden nach den Werten in der Sequence-Spalte sortiert. Die Patches innerhalb der Patchfamilie werden in der Reihenfolge steigender Sequenz auf das Zielprodukt angewendet. PatchFamily wird auch verwendet, um zu bestimmen, welche Patches ersetzt werden sollen. Ein Patch kann in mehreren Zeilen aufgeführt werden und zu mehreren Patchfamilien gehören, wenn er für mehrere Produkte gilt oder mehrere Fixes enthält.

Windows Installer verwendet den PatchFamily-Wert ausschließlich für Gleichheitsvergleiche mit anderen PatchFamily-Werten. Ein PatchFamily-Wert muss im Produktcode eindeutig sein, auf den die Patches abzielen. In komplexen Patchszenarien muss der PatchFamily-Bezeichner möglicherweise global eindeutig sein.

ProductCode

Ein Wert in diesem Feld ist optional. Wird eine Produktcode-GUID in dieses Feld eingegeben und der Patch auf das angegebene Produkt angewendet, wird der Patch sortiert und als Mitglied der angegebenen Patchfamilie angewendet. Wird eine Produktcode-GUID in dieses Feld eingegeben und der Patch nicht auf das durch ProductCode angegebene Produkt angewendet, wird diese Zeile ignoriert. Wenn der Wert in ProductCode NULL ist, wird der Patch sortiert und unabhängig vom Produktcode als Mitglied der Patchfamilie auf alle Ziele des Patches angewendet.

Ein Patch kann mehrere Zeilen in derselben Patchfamilie und einen anderen Produktcode für jedes Produkt enthalten, auf das der Patch abzielt. Eine Zeile für die Patchfamilie kann NULL für den Produktcode angeben. Wenn das Zielprodukt eine Zeile mit einem von NULL verschiedenen Produktcode abgleicht, verwendet das Installationsprogramm die übereinstimmende Zeile. Die Zeile mit dem NULL-Produktcode wird ignoriert. Wenn keiner der angegebenen Produktcodes mit dem Ziel übereinstimmt, wird der Patch sortiert und unabhängig vom Produktcode als Mitglied der Patchfamilie für alle Ziele des Patches angewendet.

Sequence

Der Wert in der Sequence-Spalte gibt die Sequenz dieses Patches innerhalb der angegebenen Patchfamilie an. Der Wert in Sequence wird im Format der Daten für die Version ausgedrückt. Der Wert enthält zwischen 1 und 4 Felder, und jedes Feld hat einen Bereich von 0 bis 65535. Mitglieder der Patchfamilie werden sortiert und auf das Zielprodukt in der Reihenfolge steigender Sequence-Werte angewendet. Die folgenden sechs Werte weisen beispielsweise eine aufsteigende Reihenfolge auf: 1, 1.1, 1.2, 2.01, 2.01.1, 2.01.1.1.

Attributes

Das Vorhandensein des msidbPatchSequenceSupersedeEarlier-Attributs in einer Zeile gibt an, dass der Patch für kleine Updates die Updates ersetzt, die von allen Patches mit kleineren Sequence-Werten in derselben Patchfamilie bereitgestellt werden. Dieser Patch enthält alle Fixes, die von früheren Patches in der angegebenen Patchfamilie bereitgestellt wurden. Dieses Attribut bedeutet nicht, dass dieser Patch die früheren Patches in allen Fällen ersetzt, da die früheren Patches zu mehreren Patchfamilien gehören können.

Ein Patch für ein kleines Update kann unter keinen Umständen einen Patch für ein Nebenupgrade oder ein Hauptupgrade ersetzen – selbst dann nicht, wenn msidbPatchSequenceSupersedeEarlier gesetzt ist.

Name Wert Bedeutung
0x00 Kennzeichnet einen einfachen Sequenzierungswert.
msidbPatchSequenceSupersedeEarlier 0x01 Kennzeichnet einen Patch, der frühere Patches in dieser Familie ersetzt.

 

Überprüfen

ICE03
ICE06

Von Windows Installer 2.0 und früheren Versionen nicht unterstützt