Benutzerdefinierter Aktionstyp 2
Diese benutzerdefinierte Aktion ruft eine ausführbare Datei auf, die mit einer Befehlszeile gestartet wird.
`Source`
Die ausführbare Datei wird aus einem temporären binären Datenstrom generiert. Das Source-Feld der CustomAction-Tabelle enthält einen Schlüssel für die Binary-Tabelle. Die Data-Spalte in der Binary-Tabelle enthält die Datenstromdaten. Jeder Zeile wird ein separater Datenstrom zugeordnet.
Neue Binärdaten können aus einer Datei eingefügt werden, indem MsiRecordSetStream gefolgt von MsiViewModify verwendet wird, um den Datensatz in die Tabelle einzufügen. Wenn die benutzerdefinierte Aktion aufgerufen wird, werden die Datenstromdaten in eine temporäre Datei kopiert, die dann abhängig vom Typ der benutzerdefinierten Aktion verarbeitet wird.
Type-Wert
Fügen Sie den folgenden Wert in die Type-Spalte der CustomAction-Tabelle ein, um den grundlegenden numerischen Typ anzugeben.
Konstanten | Hexadezimal | Decimal |
---|---|---|
msidbCustomActionTypeExe + msidbCustomActionTypeBinaryData | 0x002 | 2 |
Ziel
Die Target-Spalte der CustomAction-Tabelle enthält die Befehlszeilen-Zeichenfolge für die in der Source-Spalte benannte ausführbare Datei.
Optionen für die Rückgabeverarbeitung
Fügen Sie optionale Flagbits in die Spalte Type der Tabelle CustomAction ein, um Optionen für die Rückgabeverarbeitung anzugeben. Eine Beschreibung der Optionen und Werte finden Sie unter Optionen für die Rückgabeverarbeitung von benutzerdefinierten Aktionen.
Optionen für die Ausführungsplanung
Fügen Sie optionale Flagbits in die Spalte Type der Tabelle CustomAction ein, um Optionen für die Ausführungsplanung anzugeben. Diese Optionen steuern die mehrfache Ausführung benutzerdefinierter Aktionen. Eine Beschreibung der Optionen finden Sie unter Optionen für die Ausführungsplanung benutzerdefinierter Aktionen.
Optionen für die skriptinterne Ausführung
Fügen Sie optionale Flagbits in die Spalte Type der Tabelle CustomAction ein, um Optionen für die skriptinterne Ausführung anzugeben. Diese Optionen kopieren den Aktionscode in das Ausführungs-, Rollback- oder Commitskript. Eine Beschreibung der Optionen finden Sie unter Optionen für die skriptinterne Ausführung von benutzerdefinierten Aktionen.
Rückgabewerte
Benutzerdefinierte Aktionen, die ausführbare Dateien sind, müssen den Wert 0 zurückgeben, um erfolgreich zu sein. Das Installationsprogramm interpretiert jeden anderen Rückgabewert als Fehler. Um Rückgabewerte zu ignorieren, legen Sie das msidbCustomActionTypeContinue-Bitflag im Type-Feld der CustomAction-Tabelle fest.
Bemerkungen
Für benutzerdefinierte Aktionen, die eine ausführbare Datei starten, ist eine Befehlszeile erforderlich, die häufig dynamisch festgelegte Eigenschaften enthält. Wenn dies auch eine verzögert auszuführende benutzerdefinierte Aktion ist, erstellt das Installationsprogramm den Prozess beim Aufrufen der benutzerdefinierten Aktion über das Installationsskript über CreateProcessAsUser oder CreateProcess.
Wenn eine Datenbanktabelle exportiert wird, wird jeder Datenstrom als separate Datei in den nach der Tabelle benannten Unterordner geschrieben, wobei der Primärschlüssel als Dateiname (Name-Spalte für die Binary-Tabelle) mit der Standarderweiterung „.ibd“ verwendet wird. Für den Namen sollte das 8.3-Format verwendet werden, wenn das Dateisystem oder das Versionskontrollsystem keine langen Dateinamen unterstützt. Die persistente Archivdatei ersetzt die Datenstromdaten durch den verwendeten Dateinamen, sodass die Daten beim Importieren der Tabelle gefunden werden können.
Zugehörige Themen