Freigeben über


SelfReg-Tabelle

Die SelfReg-Tabelle enthält Informationen zu Modulen, die selbst registriert werden müssen. Der Installer ruft die DllRegisterServer-Funktion während der Installation des Moduls auf. Bei der Deinstallation des Moduls wird DllUnregisterServer aufgerufen. Der Installer registriert EXE-Dateien nicht selbst.

Die SelfReg-Tabelle weist die folgenden Spalten auf.

Spalte Typ Schlüssel Nullwerte zulässig
File_ Identifier J N
Kosten Integer N J

 

Spalten

File_

Externer Schlüssel in der ersten Spalte der Dateitabelle, der das zu registrierende Modul angibt.

Cost

Die Registrierungskosten des Moduls in Bytes. Dies muss eine nicht negative Zahl sein.

Bemerkungen

Autoren von Installationspaketen wird dringend davon abgeraten, die Selbstregistrierung zu verwenden. Stattdessen sollten sie Module registrieren, indem sie eine oder mehrere Tabellen erstellen, die vom Installer für diesen Zweck bereitgestellt werden. Weitere Informationen finden Sie unter Registrierungstabellengruppe. Bei der Selbstregistrierung gehen viele der Vorteile eines zentralen Installerdiensts verloren, da Selbstregistrierungsroutinen dazu neigen, wichtige Konfigurationsinformationen zu verbergen. Gründe für die Vermeidung der Selbstregistrierung sind:

  • Ein Rollback einer Installation mit selbst registrierten Modulen kann nicht sicher mit DllUnregisterServer durchgeführt werden, da es keine Möglichkeit gibt, festzustellen, ob die selbst registrierten Schlüssel von einem anderen Feature oder einer anderen Anwendung verwendet werden.
  • Die Nutzungsmöglichkeit von Werbung wird reduziert, wenn die Klassen- oder Erweiterungsserverregistrierung innerhalb von Selbstregistrierungsroutinen durchgeführt wird.
  • Der Installer 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 beim ersten Ausführen installieren. Andernfalls kann der Installer nicht einfach feststellen, ob die richtigen HKCU-Registrierungsschlüssel vorhanden sind.
  • Dem DllRegisterServer kann der Zugriff auf Netzwerkressourcen wie Typbibliotheken verweigert werden, wenn eine Komponente als run-from-source angegeben und in der SelfReg-Tabelle aufgeführt ist. Dies kann dazu führen, dass die Installation der Komponente während einer administrativen Installation fehlschlägt.
  • Selbstregistrierungs-DLLs sind anfälliger für Codierungsfehler, da der für DllRegisterServer erforderliche neue Code in der Regel für jede DLL unterschiedlich ist. Verwenden Sie stattdessen die Registrierungstabellen in der Datenbank, um den vorhandenen Code zu nutzen, der vom Installer bereitgestellt wird.
  • Selbstregistrierungs-DLLs können manchmal mit hilfsbasierten DLLs verknüpft werden, die nicht vorhanden sind oder in der falschen Version vorliegen. Im Gegensatz dazu kann der Installer die DLLs mithilfe der Registrierungstabellen ohne Abhängigkeit vom aktuellen Zustand des Systems registrieren.

Hinweis

Sie können mit den Aktionen SelfRegModules und SelfUnRegModules nicht die Reihenfolge festlegen, in der der Installer sich selbst registrierende DLL-Dateien registriert oder deren Registrierung aufhebt. Weitere Informationen dazu finden Sie unter Angeben der Reihenfolge für die Selbstregistrierung.

 

Überprüfen

ICE03
ICE06
ICE32