Benutzerdefinierter Aktionstyp 1
Diese benutzerdefinierte Aktion ruft eine DLL (Dynamic Link Library) auf, die in C oder C++ geschrieben wurde.
Source
Die DLL wird aus einem temporären binären Stream generiert. Das Feld Quelle der CustomAction-Tabelle enthält einen Schlüssel für die Binärtabelle.
Die Spalte Daten in der Tabelle Binär enthält die Streamdaten. Für jede Zeile wird ein separater Stream 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 Streamdaten in eine temporäre Datei kopiert, die dann abhängig vom Typ der benutzerdefinierten Aktion verarbeitet wird.
Typwert
Fügen Sie die folgenden Flagbits in die Spalte Type der CustomAction-Tabelle ein, um den grundlegenden numerischen Typ anzugeben.
| Konstanten | Hexadezimal | Decimal |
|---|---|---|
| msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData | 0x001 | 1 |
Ziel
Die DLL wird über den Einstiegspunkt namens im Feld Target der CustomAction-Tabelleaufgerufen und übergibt ein einzelnes Argument, das das Handle für die aktuelle Installationssitzung ist. Der in der Tabelle angegebene Einstiegspunktname muss mit dem aus der DLL exportierten übereinstimmen. Beachten Sie Folgendes: Wenn die Eintragsfunktion nicht von einem angegeben wird. DEF-Datei oder durch eine /EXPORT:-Linkerspezifikation kann der Name einen führenden Unterstrich und das @4 Suffix " " aufweisen. Die aufgerufene Funktion muss die _ _ stdcall-Aufrufkonvention angeben.
Optionen für die Rückgabeverarbeitung
Fügen Sie optionale Flagbits in die Spalte Type der CustomAction-Tabelle ein, um Optionen für die Rückgabeverarbeitung anzugeben. Eine Beschreibung der Optionen und Werte finden Sie unter Benutzerdefinierte Optionen für die Aktionsrückgabeverarbeitung.
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 von benutzerdefinierten Aktionen. Eine Beschreibung der Optionen finden Sie unter Custom Action Execution Scheduling Options.
In-Script Ausführungsoptionen
Fügen Sie optionale Flagbits in die Spalte Type der Tabelle CustomAction ein, um eine Skriptausführungsoption anzugeben. Diese Optionen kopieren den Aktionscode in das Ausführungs-, Rollback- oder Commitskript. Eine Beschreibung der Optionen finden Sie unter Benutzerdefinierte Aktion In-Script Ausführungsoptionen.
Rückgabewerte
Weitere Informationen finden Sie unter Rückgabewerte für benutzerdefinierte Aktionen.
Bemerkungen
Eine benutzerdefinierte Aktion, die eine DLL (Dynamic Link Library) aufruft, erfordert ein Handle für die Installationssitzung. Wenn es sich auch um eine benutzerdefinierte Aktion mit verzögerter Ausführung handelt, ist die Sitzung während der Ausführung des Installationsskripts möglicherweise nicht mehr vorhanden. Informationen dazu, wie eine benutzerdefinierte Aktion dieses Typs Kontextinformationen abrufen kann, finden Sie unter Abrufen von Kontextinformationen für benutzerdefinierte Aktionen mit verzögerter Ausführung.
Wenn eine Datenbanktabelle exportiert wird, wird jeder Stream als separate Datei im Unterordner geschrieben, der nach der Tabelle benannt ist. Dabei wird der Primärschlüssel als Dateiname (Namensspalte für die Binärtabelle) mit der Standarderweiterung ".ibd" verwendet. Der Name sollte das Format 8.3 verwenden, 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.