Benutzerdefinierte Aktionen mit verzögerter Ausführung
Der Zweck einer benutzerdefinierten Aktion mit verzögerter Ausführung besteht darin, die Ausführung einer Systemänderung auf den Zeitpunkt zu verzögern, zu dem das Installationsskript ausgeführt wird. Dies unterscheidet sich von einer regulären benutzerdefinierten Aktion oder einer Standardaktion, bei denen das Installationsprogramm die Aktion sofort ausführt, wenn es in einer Sequenztabelle oder in einem Aufruf von MsiDoAction auf sie stößt. Eine benutzerdefinierte Aktion mit verzögerter Ausführung ermöglicht es Paketersteller*innen, Systemvorgänge an einem bestimmten Punkt der Ausführung des Installationsskripts anzugeben.
Das Installationsprogramm führt zum Zeitpunkt der Verarbeitung der Installationssequenz keine benutzerdefinierte Aktion mit verzögerter Ausführung aus. Stattdessen schreibt das Installationsprogramm die benutzerdefinierte Aktion in das Installationsskript. Als einzigen Modusparameter legt das Installationsprogramm in diesem Fall MSIRUNMODE_SCHEDULED fest. Eine Beschreibung der Ausführungsmodusparameter finden Sie unter MsiGetMode.
Eine benutzerdefinierte Aktion mit verzögerter Ausführung muss in der Ausführungssequenztabelle innerhalb des Abschnitts geplant werden, in dem die Skriptgenerierung ausgeführt wird. Benutzerdefinierte Aktionen mit verzögerter Ausführung müssen in der Aktionssequenz nach InstallInitialize und vor InstallFinalize stehen.
Benutzerdefinierte Aktionen, die Eigenschaften, Featurezustände, Komponentenzustände oder Zielverzeichnisse festlegen oder Systemvorgänge durch Einfügen von Zeilen in Sequenztabellen planen, können in vielen Fällen sicher auf die sofortige Ausführung zurückgreifen. Benutzerdefinierte Aktionen, die das System direkt ändern oder einen anderen Systemdienst aufrufen, müssen auf den Zeitpunkt verzögert werden, zu dem das Installationsskript ausgeführt wird. Weitere Informationen zu möglichen Konflikten zwischen benutzerdefinierten Aktionen und dem Standardinstallationsthread finden Sie unter Synchrone und asynchrone benutzerdefinierte Aktionen.
Da das Installationsskript außerhalb der Installationssitzung ausgeführt werden kann, in der es geschrieben wurde, ist die Sitzung während der Ausführung des Installationsskripts möglicherweise nicht mehr vorhanden. Das ursprüngliche Sitzungshandle und die Eigenschaftsdaten, die während der Installationssequenz festgelegt wurden, sind somit für eine benutzerdefinierte Aktion mit verzögerter Ausführung nicht verfügbar. Verzögerte benutzerdefinierte Aktionen, die DLLs (Dynamic-Link-Bibliotheken) aufrufen, übergeben ein Handle, das nur zum Abrufen einer sehr begrenzten Menge von Informationen verwendet werden kann, wie unter Abrufen von Kontextinformationen für verzögert auszuführende benutzerdefinierte Aktionen beschrieben.
Beachten Sie, dass verzögerte benutzerdefinierte Aktionen, einschließlich benutzerdefinierter Aktionen für Rollbacks und benutzerdefinierter Aktionen für Commits, die einzigen Aktionstypen sind, die außerhalb des Sicherheitskontexts des Benutzers bzw. der Benutzerin ausgeführt werden können.
Zugehörige Themen