Verwenden transitiver Komponenten
Eine typische Verwendung für transitive Komponenten besteht darin, ein Produkt vorzubereiten, das während eines Systemupgrades neu installiert wird. Der Autor des Installationspakets gibt die Komponenten an, die während eines Systemupgrades als transitives Attribut ausgetauscht werden müssen. Wenn der Benutzer das System später aktualisiert, muss das Produkt neu installiert werden. Bei dieser Neuinstallation entfernt das Installationsprogramm die früheren Komponenten und installiert die späteren Komponenten, ohne das gesamte Produkt installieren zu müssen.
So fügen Sie zwei transitive Komponenten in das Installationspaket ein
Fügen Sie zwei transitive Komponenten in das Installationspaket ein.
Erstellen Sie zwei transitive Komponenten in der Component-Tabelle, die mit regulären Komponenten identisch sind. Jede transitive Komponente muss über eine eigene eindeutige GUID verfügen, die in der Spalte „ComponentId“ angegeben ist.
Schließen Sie das msidbComponentAttributesTransitive-Bit in die Spalte „Attributes“ der Component-Tabelle für jede transitive Komponente ein. Wenn dieses Bit festgelegt ist, wertet das Installationsprogramm den Wert der Anweisung in der Spalte „Bedingung“ bei einer Neuinstallation neu aus.
Wenn der Wert zuvor „False“ war und sich in „True“ geändert hat, installiert das Installationsprogramm die Komponente.
Wenn der Wert zuvor „True“ war und in „False“ geändert wurde, entfernt das Installationsprogramm die Komponente, auch wenn die Komponente andere Produkte als Clients hat.
Hinweis
Sofern das transitive Bit nicht festgelegt ist, bleibt die Komponente nach der Installation aktiviert, auch wenn die bedingte Anweisung bei einer nachfolgenden Wartungsinstallation des Produkts als „False“ ausgewertet wird. Die Bedingungen müssen nur auf Computerzuständen basieren. Verwenden Sie es nicht mit Bedingungen, die auf Benutzerzuständen oder in der Befehlszeile festgelegten Eigenschaften basieren, da dies dazu führen kann, dass das Installationsprogramm bei jeder Verwendung durch einen anderen Benutzer eine Neuinstallation des Produkts anfordert.
Geben Sie ergänzende bedingte Ausdrücke in die Bedingungsfelder der Control-Tabelle ein, sodass, wenn sich die Bedingung für die erste transitive Komponente in „False“ ändert, sich die Bedingung für die zweite transitive Komponente in „True“ ändert. Dies führt zur Entfernung der ersten Komponente und Installation der zweiten Komponente bei der Neuinstallation der Anwendung.
Eine Neuinstallation des Produkts ist erforderlich, um die transitiven Komponenten zu wechseln. Paketautoren müssen Benutzern daher eine Methode zum erneuten Installieren des Produkts und zum Festlegen der Modi der REINSTALLMODE-Eigenschaft bereitstellen. Es gibt im Wesentlichen drei Möglichkeiten, die Neuinstallation auszulösen:
- Führen Sie die Neuinstallation über die Benutzeroberfläche aus, und konfigurieren Sie sie, indem Sie ein Paket erstellen, das die vollständige Benutzeroberfläche verwendet.
- Führen Sie die Neuinstallation über die Befehlszeile mithilfe von msiexec /f aus, und wählen Sie die Modi aus der Liste für die /f -Befehlszeilenoption aus.
- Lassen Sie die Anwendung MsiReInstallProduct oder MsiReInstallFeature aufrufen.
Das Bit sollte nur mit Bedingungen verwendet werden, die auf Computerzuständen basieren. Verwenden Sie es nicht mit Bedingungen, die auf Benutzerzuständen oder in der Befehlszeile festgelegten Eigenschaften basieren, da dies dazu führen kann, dass das Installationsprogramm bei jeder Verwendung durch einen anderen Benutzer eine Neuinstallation des Produkts anfordert.
Hinweis
Sofern das transitive Bit in der Spalte „Attribute“ für eine Komponente nicht festgelegt ist, bleibt die Komponente nach der Installation aktiviert, auch wenn die bedingte Anweisung in der Spalte „Bedingung“ bei einer nachfolgenden Wartungsinstallation des Produkts als „False“ ausgewertet wird.
Wenn eine Anwendung transitive Komponenten enthält, benötigt Windows Installer in den meisten Fällen die Quelle der Anwendung, um die Anwendung zu reparieren oder zu aktualisieren. In diesen Fällen funktioniert die vom Originalgerätehersteller gelieferte CD-ROM zur Systemwiederherstellung nicht und es muss eine tatsächliche Installationsquelle für die Anwendung bereitgestellt werden.