Patching

Eine Anwendung, die mithilfe von Microsoft Windows Installer installiert wurde, kann aktualisiert werden, indem ein aktualisiertes Installationspaket (.msi-Datei) neu installiert wird oder ein Windows Installer-Patch (eine MSP-Datei) auf die Anwendung angewendet wird.

Ein Windows Installer-Patch (MSP-Datei) ist ein eigenständiges Paket, das die Updates für die Anwendung enthält und beschreibt, welche Versionen der Anwendung den Patch erhalten können. Patches enthalten mindestens zwei Datenbanktransformationen und können Patchdateien enthalten, die im Ablagedateistream des Patchpakets gespeichert sind. Weitere Informationen zu den Teilen eines Windows Installer-Patchpakets finden Sie unter Patchpakete.

Die Aktualisierung von Anwendungen durch Bereitstellen eines Windows Installer-Patches anstelle eines vollständigen Installationspakets für das aktualisierte Produkt kann Vorteile haben. Ein Patch kann eine gesamte Datei oder nur die Dateibits enthalten, die zum Aktualisieren eines Teils der Datei erforderlich sind. Dadurch kann der Benutzer einen Upgradepatch herunterladen, der viel kleiner als das Installationspaket für das gesamte Produkt ist. Bei einem Update mithilfe eines Patches können Benutzeranpassungen der Anwendung möglicherweise beibehalten werden.

**Windows Installer 4.5 oder höher: **

Ab Windows Installer 4.5 können Entwickler Komponenten in einem Patch mit dem Wert msidbComponentAttributesUninstallOnSupersedence in der Komponententabelle markieren. Wenn ein nachfolgender Patch installiert wird, der mit dem Wert msidbPatchSequenceSupersedeEarlier in der MsiPatchSequence-Tabelle gekennzeichnet ist, und den ersten Patch ersetzt, kann Windows Installer 4.5 und höher die Registrierung und Deinstallation von Komponenten aufheben, die mit msiComponentAttributesUninstallOnSupersededence gekennzeichnet sind, damit keine nicht verwendeten Komponenten auf dem Computer verbleiben. Wenn die Komponente nicht mit diesem Bit gekennzeichnet ist, kann bei der Installation des ersetzenden Patches eine nicht verwendete Komponente auf dem Computer verbleiben. Das Festlegen der MSIUNINSTALLSUPERSEDCOMPONENTS-Eigenschaft hat die gleiche Auswirkung wie das Festlegen dieses Bits für alle Komponenten.

**Windows Installer 3.0 oder höher: **

Entwickler, die Windows Installer 3.0 verwenden und Patchpakete erstellen, die über die MsiPatchSequence-Tabelle verfügen, können Patchpakete erstellen, die die folgenden Aktionen ausführen:

  • Verwenden der vom Installationsprogramm zwischengespeicherten Produktbaseline, um Anwendungen einfacher mit kleineren Deltapatches zu aktualisieren. Weitere Informationen zur Verwendung der Produktbaseline finden Sie unter Reduzieren der Patchgröße.
  • Überspringen von Aktionen, die bestimmten Tabellen zugeordnet sind, die durch den Patch nicht geändert werden. Dies kann die für die Installation des Patches erforderliche Zeit erheblich verkürzen. Weitere Informationen dazu, welche Tabellen übersprungen werden können, finden Sie unter Patchoptimierung.
  • Erstellen und installieren von Patches, die einzeln und in beliebiger Reihenfolge deinstalliert werden können, ohne die gesamte Anwendung und andere Patches deinstallieren und neu installieren zu müssen. Weitere Informationen zum Deinstallieren von Patches finden Sie unter Entfernen von Patches.
  • Anwenden von Patches in einer konstanten Reihenfolge, unabhängig von der Reihenfolge, in der die Patches für das System bereitgestellt werden. Weitere Informationen dazu, wie der Windows Installer die Sequenz für die Anwendung von Patches bestimmt, finden Sie unter Sequenzieren von Patches.
  • Anwenden von Patches auf eine Anwendung, die in einem benutzerspezifisch verwalteten Kontext installiert wurde. Weitere Informationen finden Sie unter Patchen von verwalteten Anwendungen pro Benutzer.

**Windows Installer 2.0: **

Die MsiPatchSequence-Tabelle wird nicht unterstützt. Ab Windows Installer 3.0 können Patchpakete Informationen enthalten, die die Patchsequenz für den Patch im Verhältnis zu anderen Updates sowie zusätzliche beschreibende Informationen darlegen.

Zum Erstellen eines Patchpakets wird die Verwendung von Patcherstellungstools wie Msimsp.exe und Patchwiz.dll empfohlen. Entwickler können eine Patcherstellungsdatei generieren, wie im Abschnitt Erstellen eines Patchpakets beschrieben. Die Erstellung eines kleinen Updatepatches wird im Abschnitt Beispiel für das Patchen eines kleinen Updates beschrieben.

Microsoft Windows Installer akzeptiert eine URL (Uniform Resource Locator) als gültige Quelle für einen Patch. Weitere Informationen zum Installieren eines Patches auf einem Webserver finden Sie unter Herunterladen und Installieren eines Patches aus dem Internet.

Beim erstmaligen Installieren einer Anwendung kann ein einzelner Windows Installer-Patch (MSP-Datei) auf das Installationspaket angewendet werden. Weitere Informationen finden Sie unter Patchen von Erstinstallationen.

Es ist nicht möglich, alle Umstände zu beseitigen durch die die Anwendung eines Patches möglicherweise Zugriff auf die ursprüngliche Installationsquelle erfordert. Um jedoch die Wahrscheinlichkeit zu minimieren, dass Ihr Patch Zugriff auf die ursprüngliche Quelle benötigt, sollten Sie die Punkte im folgenden Abschnitt beachten: So verhindern Sie, dass ein Patch Zugriff auf die ursprüngliche Installationsquelle erfordert.

Um die Wahrscheinlichkeit zu minimieren, dass Ihr Patch nicht durch eine nachfolgende Anpassungstransformation geändert wird, wird der Patch in der Regel zuerst installiert, anschließend erfolgt die Anpassung. Werden zuerst Anpassungstransformationen installiert und dann der Patch, kann dies die Anpassung verhindern. Weitere Informationen zum Patchen angepasster Anwendungen finden Sie unter Patchen angepasster Anwendungen.