Freigeben über


Beispiel für mehrere Patches

Das folgende Beispiel zeigt, wie Windows Installer 3.0 und höher verwendet werden kann, um Patches in der Reihenfolge anzuwenden, in der sie erstellt werden.

Beispiel

In diesem Beispiel gibt es drei Patches: QFE1, QFE2 und ServicePack1, die jeweils über eine Tabelle MsiPatchSequence verfügen. Diese Patches wurden erstellt, um auf Version 1.0 der Anwendung angewendet zu werden.

Patchname Patchtyp Sequenznummer
QFE1 Kleines Update 1.1.0
QFE2 Kleines Update 1.2.0
ServicePack1 Kleineres Upgrade 1.3.0

 

Die Tabelle MsiPatchSequence jedes Patches enthält nur einen Datensatz, der die Patchfamilie, den Produktcode und die Sequenznummer enthält. Die drei Patches werden alle auf dasselbe Produkt angewendet und gehören zur gleichen Patchfamilie namens AppPatch. Keiner der Patches verfügt über das Attribut msidbPatchSequenceSupersedeEarlier.

Tabelle MsiPatchSequence für das kleine QFE1-Update.

PatchFamily ProductCode Sequenz Attribute
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.1.0

 

Tabelle MsiPatchSequence für das kleine QFE2-Update.

PatchFamily ProductCode Sequenz Attribute
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.2.0

 

MsiPatchSequence-Tabelle für kleineres ServicePack1-Upgrade.

PatchFamily ProductCode Sequenz Attribute
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.3.0

 

Wenn ein Benutzer Version 1.0 des Produkts installiert und dann QFE2 anwendet und sich dann zu einem späteren Zeitpunkt entscheidet, QFE1 anzuwenden, stellt Windows Installer sicher, dass die effektive Sequenz der Patchanwendung auf das Produkt QFE1 vor QFE2 angewendet wird. Wenn der Benutzer ServicePack1 anwendet und QFE2 und QFE1 zu einem späteren Zeitpunkt zusammen anwendet, stellt Windows Installer sicher, dass die effektive Sequenz der Patchanwendung für das Produkt QFE1 vor QFE2 und vor ServicePack1 liegt.

Wenn für ServicePack1 msidbPatchSequenceSupersedeEarlier in der Spalte Attribute der Tabelle MsiPatchSequence festgelegt ist, bedeutet dies, dass das Service Pack alle Änderungen in QFE1 und QFE2 enthält. In diesem Fall werden QFE1 und QFE2 nicht angewendet, wenn ServicePack1 angewendet wird.

Windows Installer 2.0: Nicht unterstützt. Versionen vor Windows Installer 3.0 können nur einen Patch pro Transaktion installieren, und Patches werden in der Reihenfolge angewendet, in der sie bereitgestellt werden. Wenn im vorherigen Beispiel zuerst QFE2 und dann QFE1 angewendet wird, sind dies zwei Transaktionen, und die Patches werden auf Version 1.0 der Anwendung in der Sequenz QFE2 gefolgt von QFE1 angewendet. Wenn ServicePack1 zuerst angewendet wird, kann QFE1 oder QFE2 in einer späteren Transaktion nicht angewendet werden, da ServicePack1 ein kleineres Upgrade ist, das die Anwendungsversion ändert. QFE1 und QFE2 können nur auf Version 1.0 der Anwendung angewendet werden.