Freigeben über


SelfReg-Tabelle

Die SelfReg-Tabelle enthält Informationen zu Modulen, die selbst registriert werden müssen. Das Installationsprogramm ruft die DllRegisterServer Funktion während der Installation des Moduls auf; sie ruft DllUnregisterServer während der Deinstallation des Moduls auf. Das Installationsprogramm registriert keine EXE-Dateien selbst.

Die SelfReg-Tabelle enthält die folgenden Spalten.

Spalte Art Schlüssel Nullable
Datei_ Bezeichner Y N
Kosten ganze Zahl N Y

 

Spalten

File_

Externer Schlüssel in der ersten Spalte der Dateitabelle, die das Modul angibt, das registriert werden muss.

Kosten

Die Kosten für die Registrierung des Moduls in Byte. Dies muss eine nicht negative Zahl sein.

Bemerkungen

Autoren von Installationspaketen werden dringend davon abgeraten, die Selbstregistrierung zu verwenden. Stattdessen sollten sie Module registrieren, indem sie eine oder mehrere Tabellen erstellen, die vom Installationsprogramm zu diesem Zweck bereitgestellt werden. Weitere Informationen finden Sie unter Registry Tables Group. Viele der Vorteile eines zentralen Installationsdiensts gehen bei der Selbstregistrierung verloren, da Selbstregistrierungsroutinen dazu neigen, kritische Konfigurationsinformationen auszublenden. Gründe für die Vermeidung der Selbstregistrierung sind:

  • Ein Rollback einer Installation mit selbst registrierten Modulen kann nicht sicher mit DllUnregisterServer erfolgen, da es keine Möglichkeit gibt, zu sagen, ob die selbst registrierten Schlüssel von einem anderen Feature oder einer anderen Anwendung verwendet werden.
  • Die Möglichkeit zur Verwendung von Werbung wird reduziert, wenn die Registrierung des Klassen- oder Erweiterungsservers innerhalb von Selbstregistrierungsroutinen erfolgt.
  • Das Installationsprogramm verarbeitet automatisch HKCR-Schlüssel in den Registrierungstabellen für Installationen pro Benutzer oder pro Computer. DllRegisterServer- Routinen unterstützen derzeit nicht den Begriff eines HKCR-Schlüssels pro Benutzer.
  • Wenn mehrere Benutzer eine selbst registrierte Anwendung auf demselben Computer verwenden, muss jeder Benutzer die Anwendung bei der ersten Ausführung installieren. Andernfalls kann das Installationsprogramm nicht einfach feststellen, dass die richtigen HKCU-Registrierungsschlüssel vorhanden sind.
  • Der DllRegisterServer- kann der Zugriff auf Netzwerkressourcen wie Typbibliotheken verweigert werden, wenn eine Komponente sowohl als "run-from-source" angegeben wird als auch in der SelfReg-Tabelle aufgeführt ist. Dies kann dazu führen, dass die Installation der Komponente während einer Administratorinstallation fehlschlägt.
  • Selbstregistrierungs-DLLs sind anfälliger für Codierungsfehler, da der neue Code, der für DllRegisterServer- erforderlich ist, häufig für jede DLL unterschiedlich ist. Verwenden Sie stattdessen die Registrierungstabellen in der Datenbank, um vorhandenen Code zu nutzen, der vom Installationsprogramm bereitgestellt wird.
  • Selbstregistrierungs-DLLs können manchmal mit Hilfs-DLLs verknüpft werden, die nicht vorhanden sind oder die falsche Version sind. Im Gegensatz dazu kann das Installationsprogramm die DLLs mithilfe der Registrierungstabellen ohne Abhängigkeit vom aktuellen Zustand des Systems registrieren.

Anmerkung

Sie können nicht die Reihenfolge angeben, in der das Installationsprogramm DLLs mit den SelfRegModules- registriert oder die Registrierung aufgehoben, und SelfUnRegModules Aktionen. Siehe Angeben der Reihenfolge der Selbstregistrierung.

 

Validierung

ICE03-
ICE06-
ICE32-