Freigeben über


Gleichzeitige Installationen

Gleichzeitige Installationen, auch als geschachtelte Installationen bezeichnet, ist ein veraltetes Feature des Windows Installer. Anwendungen, die mit gleichzeitigen Installationen installiert sind, können schließlich fehlschlagen, da sie für Kunden schwierig sind, ordnungsgemäß zu warten. Verwenden Sie keine gleichzeitigen Installationen, um Produkte zu installieren, die für die Öffentliche Veröffentlichung vorgesehen sind. Gleichzeitige Installationen können in kontrollierten Unternehmensumgebungen eingeschränkt anwendbar sein, wenn sie zum Installieren von Anwendungen verwendet werden, die nicht für die öffentliche Veröffentlichung vorgesehen sind. Die Dokumentation zu gleichzeitigen Installationen wird für Paketautoren bereitgestellt, die gleichzeitige Installationen mit Anwendungen verwenden möchten, die nicht für die öffentliche Verteilung vorgesehen sind.

Bei einer gleichzeitigen Installation wird während einer derzeit ausgeführten Installation ein weiteres Windows Installer-Paket installiert. Eine gleichzeitige Installation wird zu einem Paket hinzugefügt, indem eine gleichzeitige Installationsaktion in der CustomAction-Tabelle erstellt und diese benutzerdefinierte Aktion in den Sequenztabellen geplant wird. Das Zielfeld der CustomAction-Tabelle enthält eine Zeichenfolge mit öffentlichen Eigenschafteneinstellungen, die von der gleichzeitigen Installation verwendet werden. Das Quellfeld der CustomAction-Tabelle identifiziert das gleichzeitige Paket. Eine gleichzeitige Installation kann nur eine Anwendung neu installieren oder entfernen, die vom Installationspaket der aktuellen Anwendung installiert wurde.

Der Typ der gleichzeitigen Installation wird im Feld "Typ" der CustomAction-Tabelle angegeben. Abhängig vom benutzerdefinierten Aktionstyp kann sich das Paket für die gleichzeitige Anwendung in einem Unterspeicher des Hauptpakets befinden, als Datei an einem Speicherort, der von einer Eigenschaft angegeben wird, oder als angekündigte Anwendung auf dem Computer des Benutzers. Die folgenden Arten von benutzerdefinierten Aktionen führen eine gleichzeitige Installation aus.

Benutzerdefinierter Aktionstyp Beschreibung
benutzerdefinierter Aktionstyp 7 Gleichzeitige Installation eines Produkts, das sich im Installationspaket befindet.
benutzerdefinierter Aktionstyp 23 Gleichzeitige Installation eines Installationspakets innerhalb der aktuellen Quellstruktur.
benutzerdefinierter Aktionstyp 39 Gleichzeitige Installation eines angekündigten Installationspakets.

 

Eine gleichzeitige Installation teilt die gleiche Benutzeroberfläche und Protokollierungseinstellungen wie die Hauptinstallation.

Gleichzeitige Installationsaktionen sollten zwischen der InstallInitialize-Aktion und InstallFinalize-Aktion der Aktionssequenz der Hauptinstallation platziert werden. Bei einem Rollback der Hauptinstallation wird das Installationsprogramm die gleichzeitige Installation ebenfalls zurücksetzen. Die Verwendung von verzögerter Ausführung mit gleichzeitigen Installationsaktionen ist nicht erforderlich, da das Installationsprogramm Rollbackinformationen aus den gleichzeitigen und Hauptinstallationen kombiniert. Alle Änderungen werden bei einer Rollbackinstallation rückgängig gemacht.

Die Rückgabewerte für gleichzeitige Installationsaktionen sind identisch mit anderen benutzerdefinierten Aktionen. Siehe benutzerdefinierte Aktionsrückgabewerte.

Standard- oder benutzerdefinierte Aktionen, die einen automatischen Neustart des Systems angeben oder den Benutzer zum Neustart auffordern, können auch einen Neustart oder eine Anforderung innerhalb einer gleichzeitigen Installation ausführen.

Sobald das Installationsprogramm eine gleichzeitige Installation startet, sperrt es alle anderen Installationen, bis die gleichzeitige Installation abgeschlossen ist, und bevor sie die Hauptinstallation fortsetzen. Das Installationsprogramm kann nur gleichzeitige Installationen als synchrone benutzerdefinierte Aktionen ausführen. Siehe synchrone und asynchrone benutzerdefinierte Aktionen. Die in optionen für die Rückgabe verarbeitung für benutzerdefinierte Aktionen beschriebenen Optionen müssen auf keine (+0) oder msidbCustomActionTypeContinue (+64) festgelegt werden.

Eine gleichzeitige Installation kann eine Anwendung installieren, die lokal ausgeführt werden soll, aus der Quelle ausgeführt, neu installiert oder auf die gleiche Weise entfernt werden kann wie bei verwendung von MsiInstallProduct- für eine normale Installation. Um den Installationstyp anzugeben, übergeben Sie entweder die ADDLOCAL-, ADDSOURCE-, ERNEUT INSTALLIEREN, oder REMOVE Eigenschaft an die gleichzeitige Installationsaktion.

Gleichzeitige Installationsaktionen können in Paaren erstellt werden, eine Aktion, die für die Installation verwendet wird, und die andere Aktion, die zum Entfernen der gleichzeitigen Installation verwendet wird. Ein benutzerdefinierter Aktionstyp 7 oder benutzerdefinierten Aktionstyp 23 wird in der Regel für die Installation verwendet. Ein benutzerdefinierter Aktionstyp 39 wird in der Regel verwendet, um die gleichzeitige Installation zu entfernen, wenn das übergeordnete Produkt deinstalliert wird. Der Datensatz für die benutzerdefinierte Aktion zum Entfernen in der CustomAction-Tabelle kann die Produktcode-GUID im Feld "Quelle" und "REMOVE=ALL" im Feld "Ziel" aufweisen. Die beiden benutzerdefinierten Aktionen müssen in der Aktionssequenztabelle mit sich gegenseitig ausschließenden Bedingungen erstellt werden. Die benutzerdefinierte Aktion, die das Produkt installiert, kann z. B. "NICHT installiert" im Feld "Bedingung" aufweisen, und die benutzerdefinierte Aktion entfernt die gleichzeitige Installation kann REMOVE="ALL" im Feld "Bedingung" haben.

Es gibt keine Methode zum Abfragen eines Pakets für seine Kosten. Dies erschwert die Kosten für gleichzeitige Installationen. Zeilen müssen der ReserveCost-Tabelle hinzugefügt werden, um die Ordner und ungünstigsten Kosten der Komponente anzugeben, die der gleichzeitigen Installation zugeordnet ist.

Die einzigen Optionen für die Rückgabeverarbeitung für benutzerdefinierte Aktionen mit gleichzeitigen Installationsaktionen verfügbar sind keine (+0) oder msidbCustomActionTypeContinue (+64).

Beachten Sie, dass eine übergeordnete Installation kein eigenes Paket als gleichzeitige Installationsaktion aufrufen kann.

Beachten Sie: Wenn eine Installation pro Computer versucht, eine gleichzeitige Installation pro Benutzer auszuführen, registriert das Installationsprogramm die übergeordnete Installation standardmäßig als pro Benutzer. Dies kann dazu führen, dass das Installationsprogramm die Anwendung falsch entfernt, da das Installationsprogramm versucht, die Anwendung pro Computer zu deinstallieren, wenn sie tatsächlich pro Benutzer registriert ist. Um den Status einer gleichzeitigen Installation zu erzwingen, um den Status der übergeordneten Installation nachzuverfolgen, geben Sie ALLUSERS="[ALLUSERS]" in die Zielspalte der CustomAction-Tabelleein. In diesem Fall ist die gleichzeitige Installation pro Computer, wenn das übergeordnete Element pro Computer ist und die gleichzeitige Installation pro Benutzer erfolgt, wenn das übergeordnete Element pro Benutzer ist.

Entwickler sollten beim Erstellen gleichzeitiger Installationen die folgenden Warnungen beachten.

  • Gleichzeitige Installationen können keine Komponenten freigeben.
  • Eine Administrative Installation kann auch keine gleichzeitige Installation enthalten.
  • Patching und Upgrade funktionieren möglicherweise nicht mit gleichzeitigen Installationen.
  • Das Installationsprogramm kostet möglicherweise keine gleichzeitige Installation.
  • Integrierte ProgressBars können nicht mit gleichzeitigen Installationen verwendet werden.
  • Ressourcen, die angekündigt werden sollen, können nicht von der gleichzeitigen Installation installiert werden.
  • Ein Paket, das eine gleichzeitige Installation einer Anwendung ausführt, sollte auch die gleichzeitige Anwendung deinstallieren, wenn das übergeordnete Produkt deinstalliert wird.

Um zu verhindern, dass ein Paket als gleichzeitige Installation installiert wird, fügen Sie eine der folgenden bedingten Anweisungen zur LaunchCondition Tabelle hinzu. Dadurch wird verhindert, dass das Paket von einer gleichzeitigen Installationsaktion installiert wird, die von einer anderen Installation ausgeführt wird. Dadurch wird nicht verhindert, dass das Paket von der RemoveExistingProducts Aktion entfernt wird. Siehe auch die eigenschaft ParentOriginalDatabase und ParentProductCode.see also the ParentOriginalDatabase property.

"Not ParentProductCode"
"Not ParentOriginalDatabase"