Freigeben über


Große Upgrades

Ein großes Upgrade ist ein umfassendes Update eines Produkts, das eine Änderung der ProductCode-Eigenschaft erfordert.

Bei einem typischen großen Upgrade wird eine frühere Version einer Anwendung entfernt und eine neue Version installiert. Bei einem großen Upgrade kann die Featurekomponentenstruktur neu organisiert werden. Weitere Informationen finden Sie unter ProductCode und Ändern des Produktcodes.

Während eines großen Upgrades mit Windows Installer durchsucht das Installationsprogramm den Computer des Benutzers nach Anwendungen, die sich auf das anstehende Upgrade beziehen; wenn es eine erkennt, ruft es die Version der installierten Anwendung aus der Systemregistrierung ab. Das Installationsprogramm verwendet dann Informationen in der Upgradedatenbank, um zu bestimmen, ob die installierte Anwendung aktualisiert werden soll.

Um die Upgradefunktionen des Installationsprogramms zu aktivieren, muss jedes Paket über eine UpgradeCode-Eigenschaft und eine Upgrade-Tabelle verfügen. Jedes eigenständige Produkt oder jede Produktsammlung sollte über einen eigenen UpgradeCode verfügen. Weitere Informationen zur Verwendung des UpgradeCodes finden Sie im Abschnitt Verwenden eines UpgradeCodes. Jeder Datensatz in der Upgrade-Tabelle enthält eine Kombination aus Upgradecode, Produktversion und Sprachinformationen, die verwendet werden, um eine Reihe von Produkten zu identifizieren, die von dem Upgrade betroffen sind. Wenn die FindRelatedProducts-Aktion erkennt, dass ein betroffenes Produkt auf dem System installiert ist, fügt sie den Produktcode an eine Eigenschaft in der ActionProperty-Spalte der Upgrade-Tabelle an. Die RemoveExistingProducts-Aktion und die MigrateFeatureStates-Aktion entfernen oder migrieren die in der ActionProperty-Liste aufgeführten Produkte. Paketersteller können auch so vorgehen, wie es im Thema Vorbereiten einer Anwendung für zukünftige größere Upgrades beschrieben ist.

Windows Installer-Upgradepakete können so erstellt werden, dass keine größeren Upgrades installiert werden, wenn der Benutzer bereits eine neuere Version der Anwendung installiert hat. Weitere Informationen zum Erstellen eines Pakets, das nicht über eine neuere Version installiert wird, finden Sie unter Verhindern der Installation eines alten Pakets, wenn bereits eine neuere Version vorhanden ist.

Hinweis

Windows Installer verwendet nur die ersten drei Felder der Produktversion. Beschreibungen dieser Felder finden Sie unter ProductVersion-Eigenschaft. Wenn Sie ein viertes Feld in Ihre Produktversion einbeziehen, ignoriert das Installationsprogramm das vierte Feld.

 

Zum Durchführen eines großen Upgrades wird empfohlen, das vollständige Paket für das aktualisierte Produkt zu installieren. Informationen zum Durchführen eines großen Upgrades durch die Installation des Produkts finden Sie unter Durchführen größerer Upgrades durch Installieren des Produkts.

Ein großes Upgrade, das als Patchpaket für das Produkt durchgeführt wird, kann nicht mit anderen Updates sequenziert werden und ist kein deinstallierbarer Patch. Informationen zum Anwenden eines großen Upgrade-Patchpakets auf ein Windows Installer-Paket finden Sie unter Anwenden von Hauptupgrades durch Patchen der lokalen Installation des Produkts. Die Durchführung eines großen Upgrades mithilfe eines Patchpakets wird nicht empfohlen; führen Sie stattdessen große Upgrades durch, indem Sie das vollständige Produkt installieren.

Hinweis

Wenn eine Anwendung im Installationskontext pro Benutzer installiert wird, muss jedes große Upgrade auf die Anwendung auch unter Verwendung des Kontexts pro Benutzer durchgeführt werden. Wenn eine Anwendung im Installationskontext pro Computer installiert wird, muss jedes große Upgrade auf die Anwendung auch unter Verwendung des Kontexts pro Computer durchgeführt werden. Der Windows Installer installiert keine größeren Upgrades über den Installationskontext hinweg.

 

Sie können benutzerdefinierte Aktionen, die nach InstallValidate sequenziert werden, für die Verarbeitung großer Upgrades festlegen, indem Sie die UPGRADINGPRODUCTCODE-Eigenschaft verwenden:

  • Wenn eine benutzerdefinierte Aktion während der Deinstallation eines Produkts ausgeführt werden soll, aber nicht während der Entfernung des Produkts durch ein größeres Upgrade, verwenden Sie diese Bedingung.

    REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE

  • Wenn eine benutzerdefinierte Aktion nur während eines großen Upgrades ausgeführt werden soll, verwenden Sie diese Bedingung.

    UPGRADINGPRODUCTCODE