Committen von benutzerdefinierten Aktionen
Benutzerdefinierte Commitaktionen werden nach erfolgreichem Abschluss des Installationsskripts ausgeführt. Wenn die InstallFinalize-Aktion erfolgreich ist, führt das Installationsprogramm alle vorhandenen benutzerdefinierten Commitaktionen aus. Der einzige Modusparameter, den das Installationsprogramm in diesem Fall festlegt, ist MSIRUNMODE _ COMMIT. Eine Beschreibung der Parameter für den Ausführungsmodus finden Sie unter MsiGetMode.
Eine benutzerdefinierte Commitaktion kann angegeben werden, indem dem Feld Type der CustomAction-Tabelleein Optionsflag hinzugefügt wird. Informationen zum Optionsflag zum Festlegen einer benutzerdefinierten Commitaktion finden Sie unter Benutzerdefinierte Aktion In-Script Ausführungsoptionen.
Eine benutzerdefinierte Commitaktion ist die Ergänzung zu einer benutzerdefinierten Rollbackaktion und kann mit benutzerdefinierten Rollbackaktionen verwendet werden, um benutzerdefinierte Aktionen umzukehren, die Änderungen direkt am System vornehmen.
Beachten Sie, dass eine benutzerdefinierte Rollbackaktion möglicherweise nicht alle Änderungen entfernen kann, die von benutzerdefinierten Commitaktionen vorgenommen wurden. Obwohl das Installationsprogramm sowohl rollback- als auch commit-benutzerdefinierte Aktionen in das Rollbackskript schreibt, werden benutzerdefinierte Commitaktionen erst ausgeführt, nachdem das Installationsskript erfolgreich verarbeitet wurde. Benutzerdefinierte Commitaktionen sind die ersten Aktionen, die im Rollbackskript ausgeführt werden. Wenn bei einer benutzerdefinierten Commitaktion ein Fehler auftritt, initiiert das Installationsprogramm ein Rollback, kann aber nur die Vorgänge zurücksetzen, die bereits in das Rollbackskript geschrieben wurden. Dies bedeutet, dass abhängig von der benutzerdefinierten Commitaktion ein Rollback die von der Aktion vorgenommenen Änderungen möglicherweise nicht rückgängig machen kann. Sie können Fehler in benutzerdefinierten Commitaktionen ignorieren, indem Sie die benutzerdefinierte Aktion erstellen, um Rückgabecodes zu ignorieren.
Benutzerdefinierte Aktionen für Rollbacks und Commits werden nicht ausgeführt, wenn das Rollback deaktiviert ist. Wenn ein Paketautor diese Art von benutzerdefinierten Aktionen für die ordnungsgemäße Installation benötigt, sollte er die RollbackDisabled-Eigenschaft in einer Bedingung verwenden, die verhindert, dass die Installation fortgesetzt wird, wenn das Rollback deaktiviert ist.