MsiPatchSequence-Tabelle
Die Tabelle MsiPatchSequence enthält alle Informationen, die das Installationsprogramm benötigt, um die Anwendungssequenz eines kleinen Updatepatches relativ zu allen anderen Patches zu bestimmen. Die Tabelle muss sich in der Datenbank der Patchdatei und nicht in einer Transformation im Patch enthalten. Das Installationsprogramm ignoriert diese Tabelle beim Anwenden eines größeren Upgradepatches. Beim Anwenden eines kleineren Upgradepatches verwendet das Installationsprogramm diese Tabelle nur, um ersetzte Patches zu identifizieren, die nicht sequenziert werden dürfen.
Die Tabelle MsiPatchSequence enthält die folgenden Spalten.
| Spalte | Typ | Schlüssel | Nullwerte zulässig |
|---|---|---|---|
| PatchFamily | Identifier | J | N |
| ProductCode | GUID | J | J |
| Sequenz | Version | N | N |
| Attributes | Integer | N | J |
Spalten
-
PatchFamily
-
Gibt an, dass der Patch ein Mitglied der Patchfamilie mit dem Namen in diesem Feld ist. Patches in derselben Patchfamilie, die auf dieselbe Produktversion angewendet werden, werden nach den Werten in der Spalte Sequenz sortiert. Die Patches innerhalb der Patchfamilie werden auf das Zielprodukt in der Reihenfolge angewendet, in der die Reihenfolge erhöht wird. 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.
Der Windows Installer interpretiert den PatchFamily-Wert nur auf Vergleiche auf Gleichheit mit anderen PatchFamily-Werten. Ein PatchFamily-Wert muss innerhalb des ProductCode-Werts eindeutig sein, auf den der Satz von Patches ausgerichtet ist. In komplexen Patchszenarien muss der PatchFamily-Bezeichner möglicherweise global eindeutig sein.
-
Productcode
-
Ein Wert in diesem Feld ist optional. Wenn eine Produktcode-GUID in dieses Feld eingegeben wird und der Patch auf das angegebene Produkt angewendet wird, wird der Patch sortiert und als Member der angegebenen PatchFamily angewendet. Wenn eine Produktcode-GUID in dieses Feld eingegeben wird und der Patch nicht auf das von ProductCode angegebene Produkt angewendet wird, wird diese Zeile ignoriert. Wenn der Wert in ProductCode NULL ist, wird der Patch unabhängig vom Produktcode sortiert und als Member von PatchFamily auf alle Ziele des Patches angewendet.
Ein Patch kann mehrere Zeilen in derselben PatchFamily und einen anderen ProductCode für jedes Produkt enthalten, auf das der Patch ausgerichtet ist. Eine Zeile für PatchFamily kann NULL für ProductCode angeben. Wenn das Zielprodukt einer Zeile mit einem ProductCode entspricht, der nicht NULL ist, verwendet das Installationsprogramm die übereinstimmende Zeile und ignoriert die Zeile mit dem NULL ProductCode. Wenn keiner der angegebenen Produktcodes mit dem Ziel übereinstimmen sollte, wird der Patch unabhängig vom Produktcode sortiert und als Mitglied von PatchFamily auf alle Ziele des Patches angewendet.
-
Sequenz
-
Der Wert in der Spalte Sequence gibt die Sequenz dieses Patches innerhalb der angegebenen PatchFamily an. Der Wert in Sequence wird im Format version data (Versionsdaten) ausgedrückt. Der Wert enthält zwischen 1 und 4 Feldern, und jedes Feld hat einen Bereich von 0 bis 65535. Member von PatchFamily werden sortiert und auf das Zielprodukt in der Reihenfolge angewendet, in der die Sequenzwerte erhöht werden. Beispielsweise werden die folgenden sechs Werte erhöht: 1, 1.1, 1.2, 2.01, 2.01.1, 2.01.1.1.
-
Attribute
-
Das Vorhandensein des msidbPatchSequenceSupersedeEarlier-Attributs in einer Zeile gibt an, dass der kleine Updatepatch die Updates absetzt, die von allen Patches mit kleineren Sequenzwerten in derselben PatchFamily bereitgestellt werden. Dieser Patch enthält alle Korrekturen, die von früheren Patches in der angegebenen PatchFamily bereitgestellt wurden. Dieses Attribut bedeutet nicht, dass dieser Patch in allen Fällen die früheren Patches ersetzt, da die früheren Patches zu mehreren Patchfamilien gehören können.
Ein kleiner Updatepatch kann unter keinen Umständen ein kleineres Upgrade oder einen größeren Upgradepatch absetzt, selbst wenn msidbPatchSequenceSupersedeEarlier festgelegt ist.
Name Wert Bedeutung 0x00 Gibt einen einfachen Sequenzwert an. msidbPatchSequenceSupersedeEarlier 0x01 Gibt einen Patch an, der frühere Patches in dieser Familie ersetzt.