SelfReg-Tabelle

Die Tabelle SelfReg 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 exe-Dateien nicht selbst.

Die Tabelle SelfReg enthält die folgenden Spalten.

Spalte Typ Key Nullwerte zulässig
Datei_ Identifier J N
Kosten Integer N J

Spalten

Datei_

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

Kosten

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

Hinweise

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 Installationsprogramm für diesen Zweck bereitgestellt werden. Weitere Informationen finden Sie unter Registrierungstabellengruppe. Viele der Vorteile eines zentralen Installationsdiensts gehen bei der Selbstregistrierung verloren, da Routinen für die Selbstregistrierung dazu tendieren, kritische Konfigurationsinformationen auszublenden. Gründe für das Vermeiden 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, zu sagen, ob die selbst registrierten Schlüssel von einem anderen Feature oder einer anderen Anwendung verwendet werden.
  • Die Möglichkeit zur Verwendung von Ankündigungen wird verringert, wenn die Registrierung des Klassen- oder Erweiterungsservers innerhalb von Routinen für die Selbstregistrierung durchgeführt wird.
  • Das Installationsprogramm verarbeitet HKCR-Schlüssel in den Registrierungstabellen automatisch sowohl für Installationen pro Benutzer als auch pro Computer. DllRegisterServer-Routinen unterstützen derzeit nicht das Konzept 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.
  • Dem DllRegisterServer kann der Zugriff auf Netzwerkressourcen wie Typbibliotheken verweigert werden, wenn eine Komponente sowohl als "run-from-source" angegeben 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 für DllRegisterServer erforderliche neue Code für jede DLL häufig unterschiedlich ist. Verwenden Sie stattdessen die Registrierungstabellen in der Datenbank, um von vorhandenem Code zu profitieren, der vom Installationsprogramm bereitgestellt wird.
  • Selbstregistrierungs-DLLs können manchmal mit Hilfs-DLLs verknüpfen, 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 Systemstatus registrieren.

Hinweis

Sie können nicht die Reihenfolge angeben, in der das Installationsprogramm selbstregistrierungsbasierte DLLs mithilfe der SelfRegModules- und SelfUnRegModules-Aktionen registriert oder die Registrierung aufheben soll. Weitere Informationen finden Sie unter Angeben der Reihenfolge der Selbstregistrierung.

Überprüfung

ICE03
ICE06
ICE32