Synchrone und asynchrone benutzerdefinierte Aktionen
Der Windows-Installer verarbeitet benutzerdefinierte Aktionen als separaten Thread von der Hauptinstallation. 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 Änderungen an der Installationsdatenbank vornehmen können.
Insbesondere sollten Aufrufe von MsiGetTargetPath und MsiSetTargetPath in asynchronen benutzerdefinierten Aktionen vermieden werden. Verwenden Sie stattdessen MsiGetProperty, um einen Zielpfad zu erhalten. Massendatenbankvorgänge wie Import-, Export- und Transformationsvorgänge sollten bei jeder Art benutzerdefinierter Aktionen vermieden werden.
Optionsflags können im Feld Typ der CustomAction-Tabelle festgelegt werden, um anzugeben, dass die Hauptthreads und benutzerdefinierten Aktionsthreads synchron oder asynchron ausgeführt werden. Weitere Informationen finden Sie unter Rückgabeverarbeitungsoptionen für benutzerdefinierte Aktionen.
Das Installationsprogramm kann benutzerdefinierte Rollbackaktionen und Gleichzeitige Installationsaktionen nur als synchrone benutzerdefinierte Aktionen ausführen.