Benutzerdefinierte Aktionen für verzögerte Ausführung
Der Zweck einer benutzerdefinierten Aktion für verzögerte Ausführung besteht darin, die Ausführung einer Systemänderung auf den Zeitpunkt der Ausführung des Installationsskripts zu verzögern. Dies unterscheidet sich von einer regulären benutzerdefinierten Aktion oder einer Standardaktion, in der das Installationsprogramm die Aktion sofort ausführt, sobald sie in einer Sequenztabelle oder in einem Aufruf von MsiDoAction. Eine benutzerdefinierte Aktion für verzögerte Ausführung ermöglicht es einem Paketautor, Systemvorgänge an einem bestimmten Punkt innerhalb der Ausführung des Installationsskripts anzugeben.
Das Installationsprogramm führt zum Zeitpunkt der Verarbeitung der Installationssequenz keine benutzerdefinierte Aktion für verzögerte Ausführung aus. Stattdessen schreibt das Installationsprogramm die benutzerdefinierte Aktion in das Installationsskript. Der einzige Modusparameter, den der Installer in diesem Fall festlegt, ist MSIRUNMODE_SCHEDULED. Eine Beschreibung der Ausführungsmodusparameter finden Sie unter MsiGetMode-.
Eine benutzerdefinierte Aktion für verzögerte Ausführung muss in der Ausführungssequenztabelle innerhalb des Abschnitts geplant werden, in dem die Skriptgenerierung ausgeführt wird. Benutzerdefinierte Aktionen für verzögerte Ausführung müssen nach InstallInitialize- kommen und vor InstallFinalize- in der Aktionssequenz kommen.
Benutzerdefinierte Aktionen, die Eigenschaften, Featurezustände, Komponentenzustände oder Zielverzeichnisse festlegen oder Systemvorgänge planen, indem Zeilen in Sequenztabellen eingefügt werden, können in vielen Fällen die sofortige Ausführung sicher verwenden. Benutzerdefinierte Aktionen, die das System direkt ändern oder einen anderen Systemdienst aufrufen, müssen jedoch auf den Zeitpunkt zurückgestellt werden, zu dem das Installationsskript ausgeführt wird. Weitere Informationen zu potenziellen Konflikten zwischen ihren benutzerdefinierten Aktionen und dem Hauptinstallationsthread finden Sie unter synchronen und asynchronen benutzerdefinierten Aktionen.
Da das Installationsskript außerhalb der Installationssitzung ausgeführt werden kann, in der sie geschrieben wurde, ist die Sitzung möglicherweise während der Ausführung des Installationsskripts nicht mehr vorhanden. Dies bedeutet, dass das ursprüngliche Sitzungshandle und der Eigenschaftendatensatz während der Installationssequenz nicht für eine benutzerdefinierte Aktion zur verzögerten Ausführung verfügbar sind. Verzögerte benutzerdefinierte Aktionen, die Dynamic Link Libraries (DLLs) aufrufen, übergeben ein Handle, das nur zum Abrufen einer sehr begrenzten Menge von Informationen verwendet werden kann, wie in Abrufen von Kontextinformationen für benutzerdefinierte Deferred Execution Custom Actionsbeschrieben.
Beachten Sie, dass verzögerte benutzerdefinierte Aktionen, einschließlich rollback benutzerdefinierte Aktionen und Commit benutzerdefinierter Aktionen, die einzigen Arten von Aktionen sind, die außerhalb des Sicherheitskontexts von Benutzern ausgeführt werden können.
Verwandte Themen