Rollback Custom-Aktionen
Wenn das Installationsprogramm das Installationsskript verarbeitet, generiert es gleichzeitig ein Rollbackskript. Zusätzlich zum Rollbackskript speichert das Installationsprogramm eine Kopie jeder Datei, die es während der Installation löscht. Diese Dateien werden in einem ausgeblendeten Systemverzeichnis gespeichert. Nach Abschluss der Installation werden das Rollbackskript und die gespeicherten Dateien gelöscht. Wenn eine Installation nicht erfolgreich ist, versucht das Installationsprogramm, die während der Installation vorgenommenen Änderungen zurückzusetzen und den ursprünglichen Zustand des Computers wiederherzustellen.
Obwohl Custom-Aktionen, die Systemvorgänge durch Einfügen von Zeilen in die Datenbanktabelle planen, durch ein Rollback der Installation umgekehrt werden, können Custom-Aktionen, die das System direkt ändern oder Befehle an andere Systemdienste ausgeben, nicht immer durch ein Rollback rückgängig gemacht werden. Eine Rollback Custom-Aktion ist eine Aktion, die vom Installationsprogramm nur während eines Installationsrollbacks ausgeführt wird, und deren Zweck darin besteht, eine Custom-Aktion, die Änderungen am System vorgenommen hat, rückgängig zu machen.
Eine Rollback Custom-Aktion ist eine Art von Custom-Aktion mit verzögerter Ausführung, da ihre Ausführung zurückgestellt wird, wenn sie während der Installationssequenz aufgerufen wird. Sie unterscheidet sich von einer regulären verzögerten Custom-Aktion dadurch, dass sie nur während eines Rollbacks ausgeführt wird. Eine Rollback Custom-Aktion muss immer der zurückgestellten Custom-Aktion vorangestellt werden, die in der Aktionssequenz zurückgesetzt wird. Eine Rollback Custom-Aktion sollte auch den Fall behandeln, in dem die verzögerte Custom-Aktion mitten in der Ausführung unterbrochen wird. Dies kann beispielsweise geschehen, wenn der*die Benutzer*in auf die Schaltfläche „Abbrechen“ klickt, während die Custom-Aktion ausgeführt wird.
Beachten Sie, dass Rollback Custom-Aktionen nicht asynchron ausgeführt werden können. Weitere Informationen finden Sie unter Synchrone und asynchrone Custom-Aktionen.
Die Ergänzung zu einer Rollback Custom-Aktion ist eine Commit Custom-Aktion. Der Installer führt während der Installationssequenz eine Commit Custom-Aktion aus, kopiert die Custom-Aktion in das Rollbackskript, führt die Aktion während des Rollbacks jedoch nicht aus.
Beachten Sie, dass eine Rollback Custom-Aktion möglicherweise nicht alle Änderungen rückgängig kann, die durch Commit Custom-Aktionen vorgenommen wurden. Obwohl das Installationsprogramm sowohl Rollback- als auch Commit Custom-Aktionen in das Rollbackskript schreibt, werden Commit Custom-Aktionen nur ausgeführt, nachdem das Installationsprogramm das Installationsskript erfolgreich verarbeitet hat. Commit Custom-Aktionen sind die ersten Aktionen, die im Rollbackskript ausgeführt werden. Wenn bei einer Commit Custom-Aktion ein Fehler auftritt, initiiert das Installationsprogramm ein Rollback, kann jedoch nur die Vorgänge rückgängig machen, die bereits in das Rollbackskript geschrieben wurden. Dies bedeutet, dass ein Rollback abhängig von der Commit Custom-Aktion die von der Aktion vorgenommenen Änderungen möglicherweise nicht rückgängig machen kann. Sie können Fehler bei Commit Custom-Aktionen ignorieren, indem Sie die Custom-Aktion so erstellen, dass Rückgabecodes ignoriert werden.
Wenn der Installer eine Rollback Custom-Aktion ausführt, wird der einzige Modusparameter „MSIRUNMODE_ROLLBACK“ festgelegt. Eine Beschreibung der Ausführungsmodusparameter finden Sie unter MsiGetMode.
Eine Rollback Custom-Aktion kann angegeben werden, indem dem Feld „Type“ der CustomAction-Tabelle ein Optionsflag hinzugefügt wird. Sie finden das Optionsflag, das eine Commit Custom-Aktion kennzeichnet, unter Optionen für die skriptinterne Ausführung benutzerdefinierter Aktionen.
Rollback- und Commit Custom-Aktionen werden nicht ausgeführt, wenn das Rollback deaktiviert ist. Wenn ein Paketersteller diese Arten von Custom-Aktionen für die ordnungsgemäße Installation benötigt, sollte die Eigenschaft RollbackDisabled in einer Bedingung verwendet werden, die verhindert, dass die Installation fortgesetzt wird, wenn das Rollback deaktiviert ist. Informationen zum Deaktivieren des Rollbacks finden Sie unter Rollbackinstallation (Windows Installer).