Benutzerdefinierter Aktionstyp 1
Diese benutzerdefinierte Aktion ruft eine dll (Dynamic Link Library) auf, die in C oder C++ geschrieben wurde.
Quelle
Die DLL wird aus einem temporären binären Datenstrom generiert. Das Quellfeld der CustomAction-Tabelle enthält einen Schlüssel zur Binary-Tabelle.
Die Datenspalte in der Binärtabelle enthält die Datenstromdaten. Jeder Zeile wird ein separater Datenstrom zugewiesen. Neue Binärdaten können aus einer Datei eingefügt werden, indem MsiRecordSetStream- gefolgt von MsiViewModify, 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.
Typwert
Fügen Sie die folgenden Flagbits in die Spalte "Typ" der CustomAction-Tabelle ein, um den grundlegenden numerischen Typ anzugeben.
Konstanten | Hexadezimal | Dezimal |
---|---|---|
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData- | 0x001 | 1 |
Ziel
Die DLL wird über den Einstiegspunkt aufgerufen, der im Zielfeld der CustomAction-Tabellebenannt ist, wobei ein einzelnes Argument übergeben wird, das das Handle an die aktuelle Installationssitzung ist. Der in der Tabelle angegebene Einstiegspunktname muss mit dem aus der DLL exportierten Wert übereinstimmen. Beachten Sie, dass, wenn die Eintragsfunktion nicht durch eine . DEF-Datei oder durch eine /EXPORT:-Spezifikation, der Name kann einen führenden Unterstrich und ein Suffix "@4" aufweisen. Die aufgerufene Funktion muss die __stdcall Aufrufenskonvention angeben.
Rückgabeverarbeitungsoptionen
Fügen Sie optionale Flagbits in die Spalte "Typ" der CustomAction-Tabelle ein, um Rückgabeverarbeitungsoptionen anzugeben. Eine Beschreibung der Optionen und werte finden Sie unter Benutzerdefinierte Aktion Rückgabeverarbeitungsoptionen.
Ausführungsplanungsoptionen
Fügen Sie optionale Flagbits in die Spalte "Typ" der CustomAction-Tabelle ein, um Ausführungsplanungsoptionen anzugeben. Diese Optionen steuern die mehrfache Ausführung von benutzerdefinierten Aktionen. Eine Beschreibung der Optionen finden Sie unter Benutzerdefinierte Optionen für die Ausführung von Aktionen.
In-Script Ausführungsoptionen
Fügen Sie optionale Flagbits in die Spalte "Typ" der CustomAction-Tabelle ein,, um eine In-Script-Ausführungsoption anzugeben. Mit diesen Optionen wird der Aktionscode in das Ausführungs-, Rollback- oder Commitskript kopiert. Eine Beschreibung der Optionen finden Sie unter Benutzerdefinierte Aktion In-Script Ausführungsoptionen.
Rückgabewerte
Siehe benutzerdefinierte Aktionsrückgabewerte.
Bemerkungen
Eine benutzerdefinierte Aktion, die eine Dynamic Link Library (DLL) aufruft, erfordert ein Handle für die Installationssitzung. Wenn dies auch eine benutzerdefinierte Aktion für verzögerte Ausführung ist, ist die Sitzung möglicherweise während der Ausführung des Installationsskripts nicht mehr vorhanden. Informationen dazu, wie eine benutzerdefinierte Aktion dieses Typs Kontextinformationen abrufen kann, finden Sie unter Abrufen von Kontextinformationen für benutzerdefinierte Aktionen für verzögerte Ausführung.
Wenn eine Datenbanktabelle exportiert wird, wird jeder Datenstrom als separate Datei im Unterordner geschrieben, der nach der Tabelle benannt ist, wobei der Primärschlüssel als Dateiname (Name-Spalte für die Binärtabelle) mit der Standarderweiterung ".ibd" verwendet wird. Der Name sollte das Format 8.3 verwenden, wenn das Dateisystem oder das Versionssteuerungssystem keine langen Dateinamen unterstützt. Die permanente Archivdatei ersetzt die Datenstromdaten durch den verwendeten Dateinamen, sodass die Daten beim Importieren der Tabelle gefunden werden können.
Verwandte Themen