Synchrone und asynchrone benutzerdefinierte Aktionen

Der Windows Installer verarbeitet benutzerdefinierte Aktionen als von der Hauptinstallation getrennten Thread. Während der synchronen Ausführung einer benutzerdefinierten Aktion wartet das Installationsprogramm, bis der Thread der benutzerdefinierten Aktion abgeschlossen ist, bevor die Hauptinstallation fortgesetzt wird. Während der asynchronen Ausführung führt das Installationsprogramm die benutzerdefinierte Aktion gleichzeitig aus, während die aktuelle Installation fortgesetzt wird. Autoren benutzerdefinierter Aktionen müssen daher alle asynchronen Threads kennen, die zwischen Funktionsaufrufen möglicherweise Änderungen an der Installationsdatenbank vornehmen.

Insbesondere sollten Aufrufe von MsiGetTargetPath und MsiSetTargetPath in asynchronen benutzerdefinierten Aktionen vermieden werden. Verwenden Sie stattdessen MsiGetProperty, um einen Zielpfad abzurufen. Massendatenbankvorgänge wie Import-, Export- und Transformationsvorgänge sollten bei jeder Art von benutzerdefinierter Aktion vermieden werden.

Optionsflags können im Type-Feld der CustomAction-Tabelle festgelegt werden, um anzugeben, dass die Haupt- und benutzerdefinierten Aktionsthreads synchron oder asynchron ausgeführt werden. Siehe Optionen für die Rückgabeverarbeitung von benutzerdefinierten Aktionen.

Das Installationsprogramm kann nur benutzerdefinierte Rollback-Aktionen und gleichzeitige Installationsaktionen als synchrone benutzerdefinierte Aktionen ausführen.