Patching
Eine Anwendung, die mithilfe des Microsoft Windows Installers installiert wurde, kann aktualisiert werden, indem ein aktualisiertes Installationspaket (.msi-Datei) neu installiert 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 empfangen können. Patches enthalten mindestens zwei Datenbanktransformationen und können Patchdateien enthalten, die im Cab-Dateistream des Patchpakets gespeichert sind. Weitere Informationen zu den Teilen eines Windows Installer-Patchpakets finden Sie unter Patchpakete.
Die Wartung 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 ganze 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. Ein Update mit einem Patch kann eine Benutzeranpassung der Anwendung durch das Upgrade beibehalten.
**Windows Installer 4.5 und höher: **
Ab Windows Installer 4.5 können Entwickler Komponenten in einem Patch mit dem Wert msidbComponentAttributesUninstallOnSupersedence in der Tabelle Componentmarkieren. Wenn ein nachfolgender Patch installiert wird, der mit dem msidbPatchSequenceSupersedeEarlier-Wert in der MsiPatchSequence-Tabelle markiert ist, um den ersten Patch zu ersetzen, kann Windows Installer 4.5 und höher die Registrierung aufheben und Komponenten deinstallieren, die als msidbComponentAttributesUninstallOnSupersedence gekennzeichnet sind, um zu verhindern, dass ungenutzte Komponenten auf dem Computer zurückgelassen werden. Wenn die Komponente nicht mit diesem Bit gekennzeichnet ist, kann die Installation des abgelösten Patches eine nicht verwendete Komponente auf dem Computer belassen. Das Festlegen der MSIUNINSTALLSUPERSEDEDCOMPONENTS-Eigenschaft hat die gleiche Auswirkung wie das Festlegen dieses Bits für alle Komponenten.
**Windows Installer 3.0 und höher: **
Entwickler, die Windows Installer 3.0 verwenden und Patchpakete mit der MsiPatchSequence-Tabelle erstellen, können Patchpakete erstellen, die folgende Schritte ausführen:
- Verwenden Sie die vom Installationsprogramm zwischengespeicherte Produktbaseline, um Anwendungen mit kleineren Deltapatches einfacher bedienen zu können. Weitere Informationen zur Verwendung der Produktbaseline finden Sie unter Reduzieren der Patchgröße.
- Überspringt Aktionen, die bestimmten Tabellen zugeordnet sind, die vom Patch nicht geändert werden. Dies kann den Zeitaufwand für die Installation des Patches erheblich reduzieren. Weitere Informationen dazu, welche Tabellen übersprungen werden können, finden Sie unter Patchoptimierung.
- Erstellen und installieren Sie Patches, die singly 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.
- Wenden Sie Patches in einer konstanten Reihenfolge an, unabhängig von der Reihenfolge, in der die Patches für das System bereitgestellt werden. Weitere Informationen dazu, wie der Windows Installer die Sequenz bestimmt, die zum Anwenden von Patches verwendet wird, finden Sie unter Sequenzieren von Patches.
- Wenden Sie Patches auf eine Anwendung an, die in einem vom Benutzer verwalteten Kontext installiert wurde. Weitere Informationen finden Sie unter Patching Per-User Managed Applications.
**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 relativ zu anderen Updates und zusätzliche beschreibende Informationen beschreiben.
Die empfohlene Methode zum Erstellen eines Patchpakets ist die Verwendung von Tools zum Erstellen von Patches wie Msimsp.exe und Patchwiz.dll. Entwickler können eine Patcherstellungsdatei generieren, wie im Abschnitt Erstellen eines Patchpaketsbeschrieben. Die Erstellung eines kleinen Updatepatches wird im Abschnitt A Small Update Patching Example (Beispiel für ein kleines Updatepatching)beschrieben.
Microsoft Windows Installer akzeptiert eine Uniform Resource Locator (URL) 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.
Ein einzelner Windows Installerpatch (MSP-Datei) kann auf das Installationspaket angewendet werden, wenn eine Anwendung zum ersten Mal installiert wird. Weitere Informationen finden Sie unter Patching Initial Installations.
Es ist nicht möglich, alle Umstände auszuschließen, in denen die Anwendung eines Patches möglicherweise Zugriff auf die ursprüngliche Installationsquelle erfordert. Um jedoch die Möglichkeit zu minimieren, dass Ihr Patch Zugriff auf die ursprüngliche Quelle benötigt, befolgen Sie die Im folgenden Abschnitt aufgeführten Punkte: Verhindern, dass ein Patch Zugriff auf die ursprüngliche Installationsquelle erfordert.
Um die Möglichkeit zu minimieren, dass Ihr Patch nicht durch eine nachfolgende Anpassungstransformation unterbrochen wird, wird der Patch in der Regel zuerst installiert, gefolgt von der Anpassung. Die Installation von Anpassungstransformationen zuerst und dann des Patches kann die Anpassung unterbrechen. Weitere Informationen zum Patchen benutzerdefinierter Anwendungen finden Sie unter Patchen benutzerdefinierter Anwendungen.