Reduzieren der Patchgröße

Ab Windows Installer Version 3.0 können Patchautoren die vom Installationsprogramm zwischengespeicherte Produktbaseline verwenden, um Anwendungen mit kleineren Deltapatches einfacher zu bedienen. In vielen Fällen kann ein Deltapatch, der Wartungsinformationen an eine Anwendung übermittelt, erheblich kleiner sein als ein Volldateipatch oder Installationspaket, das die gleichen Informationen liefert.

Windows Installer 2.0: Wird nicht unterstützt. Ab Windows Installer 3.0 speichert das Installationsprogramm selektiv Basisinformationen zu Dateien, wenn diese aktualisiert werden.

Windows Das Installationsprogramm stellt drei Methoden zum Aktualisieren und Warten von Anwendungen bereit: kleine Updates, kleinere Upgradesund größere Upgrades. Ein kleines Update wird auch als QFE-Update (Quick Fix Engineering) bezeichnet, und ein kleineres Upgrade wird auch als Service Pack-Update (SP) bezeichnet. Bei einem typischen größeren Upgrade wird eine vorherige Anwendung entfernt und eine neue Anwendung installiert. Windows Das Installationsprogramm kann Wartungsinformationen als Installationspaket (.msi-Datei) oder als Patchpaket (MSP-Datei) an Anwendungen übermitteln.

Ein Windows Installer-Patchpaket, das Wartungsinformationen für ein kleines Update oder ein kleineres Upgrade liefert, ist im Allgemeinen viel kleiner als das entsprechende Installationspaket, das die gleichen Wartungsinformationen liefert. Es wird empfohlen, Patchpakete für die Verteilung kleiner und kleiner Upgrades zu verwenden. Es wird empfohlen, ein Installationspaket für die Verteilung eines größeren Upgrades zu verwenden.

Windows Installerpatches (MSP-Dateien) können entweder aus vollständigen Dateien oder aus Dateiunterschieden (auch als Dateideltas bezeichnet) generiert werden. Ein aus Dateideltawerten generierter Windows Installer-Patch kann viel kleiner sein als der entsprechende Vollständige-Datei-Patch. Alle Versionen des Windows Installers können sowohl Vollständige- als auch Deltapatches verwenden.

Ab Windows Installer Version 3.0 speichert das Installationsprogramm selektiv Baselineinformationen zu Dateien, wenn diese aktualisiert werden. Informationen zur ursprünglichen Basisanwendung (RTM-Version) und zum letzten kleineren Upgrade (Service Pack) werden an einem privaten Speicherort gespeichert, wenn die Anwendung installiert wird oder ein kleineres Upgrade erhält.

Das Installationsprogramm führt folgende Schritte aus, um die Größe des Baselinecaches zu minimieren:

  • Es werden nicht mehr als zwei Baselines für jede Anwendung beibehalten: eine Baseline der Datei wie ursprünglich veröffentlicht (RTM) und eine Baseline der Datei beim letzten kleineren Upgrade (Service Pack).
  • Eine Datei wird erst dann dem Cache hinzugefügt, wenn sie gepatcht wurde. Der Baselinecache wird beim Schreiben kopiert.
  • Wenn die Anwendung noch nie aktualisiert wurde, sind keine Dateien im Baselinecache vorhanden.
  • Wenn die letzte Wartung der Anwendung ein kleineres Upgrade (Service Pack) war, befindet sich die Anwendung auf einer Baselineebene, und höchstens zwei Kopien einer Datei können auf dem Computer vorhanden sein. Eine Kopie der Datei befindet sich im Zielverzeichnis der Installation. Die andere Kopie kann sich im RTM-Baselinecache befinden.
  • Wenn die letzte Wartung der Anwendung ein kleines Update (Small Update, QFE) war, befindet sich die Anwendung nicht auf einer Baselineebene, und höchstens drei Kopien einer Datei können auf dem Computer vorhanden sein. Die erste Kopie der Datei befindet sich im Zielverzeichnis der Installation. Die zweite Kopie der Datei befindet sich im RTM-Baselinecache. Die letzte Kopie der Datei befindet sich im letzten Baselinecache.
  • Der Baselinecache der Anwendung wird entfernt, wenn das Produkt deinstalliert wird.

Ab Windows Installer Version 3.0 kann das Installationsprogramm den Baselinecache verwenden, wenn Patches auf die Anwendung angewendet werden. Die Basisinformationen können verwendet werden, um einen Deltapatch anzuwenden oder eine Datei während einer Patchdeinstallation auf eine frühere Version zurückgesetzt zu haben. Dadurch können Patchautoren von kleineren Deltapatches profitieren. Wenn das Installationsprogramm feststellt, dass der Deltapatch nicht auf die Zieldatei angewendet werden kann, kann das Installationsprogramm versuchen, eine im Baselinecache gespeicherte Datei als Ausgangspunkt zu verwenden. Das Installationsprogramm fordert nur die ursprüngliche Installationsquelle an, nachdem alle Möglichkeiten im Cache ausprobiert wurden.

Die Einhaltung der folgenden Richtlinien kann Patchautoren helfen, Windows Installer Version 3.0-Patches und den Baselinecache zu verwenden, um kleinere Deltapatches zu erstellen:

  • Erstellen Sie Patches, die die MsiPatchSequence-Tabelleenthalten. Diese Tabelle ist für die Verwendung des Baselinecaches erforderlich und steht ab Windows Installer Version 3.0 zur Verfügung.
  • Legen Sie keine Richtlinie fest, die das Zwischenspeichern von Baselines verhindert. Der Wert der MaxPatchCacheSize-Richtlinie gibt den maximalen Prozentsatz des Speicherplatzes an, der verwendet werden kann. Wenn die MaxPatchCacheSize-Richtlinie auf 0 festgelegt ist, werden keine zusätzlichen Dateien im Baselinecache gespeichert. Wenn die Richtlinie nicht festgelegt ist, kann standardmäßig maximal 10 % des Speicherplatzes auf dem Datenträger verwendet werden. Wenn die Gesamtgröße des Caches den maximalen Prozentsatz des Speicherplatzes erreicht, werden keine zusätzlichen Dateien gespeichert. Die Richtlinie wirkt sich nicht auf Dateien aus, die bereits gespeichert wurden. Auch wenn das Zwischenspeichern deaktiviert ist, kann das Installationsprogramm vorhandene Produktbaselinecaches verwenden.
  • Wenn der erste angewendete Patch die MsiPatchSequence-Tabelleenthält, ist das Zwischenspeichern für die Anwendung aktiviert.
  • Wenn ein Patch in der Wartungstransaktion nicht die MsiPatchSequence-Tabelleenthält, ist das Zwischenspeichern für die Anwendung nur aktiviert, wenn ein kleiner Upgradepatch (Service Pack), der die MsiPatchSequence-Tabelle enthält, erfolgreich auf das Produkt angewendet wird.
  • Generieren Sie das Patchpaket mithilfe von Tools zum Erstellen von Patches wie Msimsp.exe und PATCHWIZ.DLL.
  • Richten Sie patches immer für die RTM-Version der Anwendung oder eine Kleinere Upgradeversion (Service Pack) der Anwendung ein. Die ziele, die in der Tabelle TargetImages der PCP-Datei (Patch Creation Properties) angegeben sind, sollten Produktprüfpunkte sein, die durch die ersten drei Felder der ProductVersion-Eigenschaft definiert werden.
  • Richten Sie patches niemals bei kleinen Updateimages an. Die Ziele zum Erstellen des Patches dürfen keine früheren Images für kleine Updateupgrades enthalten.