Wichtige Upgrades

Ein umfangreiches Upgrade ist ein umfassendes Update eines Produkts, das eine Änderung der ProductCode-Eigenschaft benötigt.

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

Während eines größeren Upgrades mithilfe des Windows-Installers durchsucht das Installationsprogramm den Computer des Benutzers nach Anwendungen, die mit dem ausstehenden Upgrade in Zusammenhang stehen, und wenn es eines 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 Upgradetabelle verfügen. Jedes eigenständige Produkt oder jede eigenständige Produktsuite sollte über einen eigenen UpgradeCode verfügen. Weitere Informationen zur Verwendung von UpgradeCode finden Sie im Abschnitt Verwenden eines UpgradeCodes. Jeder Datensatz in der Upgradetabelle enthält eine Kombination aus Upgradecode, Produktversion und Sprachinformationen, die verwendet werden, um eine Gruppe von Produkten zu identifizieren, die vom Upgrade betroffen sind. Wenn die Aktion FindRelatedProducts erkennt, dass ein betroffenes Produkt auf dem System installiert ist, fügt sie den Produktcode an eine Eigenschaft in der Spalte ActionProperty der Tabelle Upgrade an. Mit der RemoveExistingProducts-Aktion und der MigrateFeatureStates-Aktion werden die in der Liste ActionProperty aufgeführten Produkte entfernt oder migriert. Paketautoren können auch das im Thema Vorbereiten einer Anwendung für zukünftige Hauptupgrades beschriebene Verfahren befolgen.

Windows Installationsupgradepakete können so verfasst werden, dass größere Upgrades nicht 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 über eine neuere Version.

Hinweis

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

Die empfohlene Methode zum Anwenden eines größeren Upgrades durch Installieren des vollständigen Pakets für das aktualisierte Produkt. Informationen zum Anwenden eines größeren Upgrades durch Installieren des Produkts finden Sie unter Applying Major Upgrades by Installing the Product.

Ein größeres Upgrade, das als Patchpaket für das Produkt angewendet wird, kann nicht mit anderen Updates sequenziert werden und ist kein deinstallationsfähiger Patch. Informationen zum Anwenden eines größeren Upgradepatchpakets auf ein Windows Installer-Paket finden Sie unter Applying Major Upgrades by Patching the Local Installation of the Product. Die Anwendung eines größeren Upgrades mithilfe eines Patchpakets wird nicht empfohlen. Wenden Sie stattdessen größere Upgrades an, indem Sie das vollständige Produkt installieren.

Hinweis

Wenn eine Anwendung im Benutzerinstallationskontext installiert wird,muss jedes größere Upgrade der Anwendung auch im Benutzerkontext ausgeführt werden. Wenn eine Anwendung im Installationskontext pro Computer installiert wird, muss jedes größere Upgrade der Anwendung auch mit dem Computerkontext ausgeführt werden. Der Windows Installer installiert keine größeren Upgrades im installationskontextübergreifenden Kontext.

Sie können benutzerdefinierte Aktionen, die nach InstallValidate sequenziert werden, zur Handhabung wichtiger Upgrades mithilfe der UPGRADINGPRODUCTCODE-Eigenschaft bedingungsdefiniert machen:

  • Wenn sie möchten, dass eine benutzerdefinierte Aktion während einer Deinstallation des Produkts, aber nicht während der Entfernung des Produkts durch ein größeres Upgrade ausgeführt wird, verwenden Sie diese Bedingung.

    REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE

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

    UPGRADINGPRODUCTCODE