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.

Benutzerdefinierte _ Aktionen

Dynamic Link-Bibliotheken

Abrufen von Kontextinformationen für benutzerdefinierte Aktionen mit verzögerter Ausführung