Partager via


Table SelfReg

La table SelfReg contient des informations sur les modules qui doivent être auto-inscrits. Le programme d’installation appelle la fonction DllRegisterServer pendant l’installation du module ; il appelle DllUnregisterServer pendant la désinstallation du module. Le programme d’installation n’enregistre pas automatiquement les fichiers EXE.

La table de boîtes de dialogue contient les colonnes suivantes.

Colonne Type Clé Nullable
File_ Identificateur O N
Coût Integer N O

 

Colonnes

File_

Clé externe dans la première colonne de la table File indiquant le module à inscrire.

Cost

Le coût d'enregistrement du module en octets. Il doit s’agir d’un nombre non négatif.

Notes

Les auteurs de packages d’installation sont fortement déconseillés d’utiliser l’auto-inscription. Au lieu de cela, ils doivent inscrire des modules en créant une ou plusieurs tables fournies par le programme d’installation à cet effet. Pour plus d’informations, consultez Registry Tables Group. La plupart des avantages d’avoir un service d’installation central sont perdus avec l’inscription automatique, car les routines d’auto-inscription ont tendance à masquer les informations de configuration critiques. Les raisons d’éviter l’auto-inscription sont comme suit :

  • La restauration d’une installation avec des modules auto-inscrits ne peut pas être effectuée en toute sécurité à l’aide de DllUnregisterServer , car il n’existe aucun moyen de dire si les clés auto-inscrites sont utilisées par une autre fonctionnalité ou application.
  • La possibilité d’utiliser la publication est réduite si l’inscription du serveur de classes ou d’extensions est effectuée dans des routines d’auto-inscription.
  • Le programme d’installation gère automatiquement les clés HKCR dans les tables de Registre pour les installations par utilisateur ou par ordinateur. Actuellement, les routines DllRegisterServer ne prennent pas en charge la notion de clé HKCR par utilisateur.
  • Si plusieurs utilisateurs utilisent une application auto-inscrite sur le même ordinateur, chaque utilisateur doit installer l’application la première fois qu’il l’exécute. Sinon, le programme d’installation ne peut pas facilement déterminer que les clés de Registre HKCU appropriées existent.
  • DllRegisterServer peut se voir refuser l’accès aux ressources réseau telles que les bibliothèques de types si un composant est à la fois spécifié en tant qu’exécution à partir de la source et est répertorié dans la table SelfReg. Cela peut entraîner l’échec de l’installation du composant lors d’une installation administrative.
  • Les DLL auto-inscrites sont plus sensibles aux erreurs de codage, car le nouveau code requis pour DllRegisterServer est généralement différent pour chaque DLL. Utilisez plutôt les tables de Registre dans la base de données pour tirer parti du code existant fourni par le programme d’installation.
  • Les DLL auto-inscrites peuvent parfois être liées à des DLL auxiliaires qui ne sont pas présentes ou qui sont une version incorrecte. Par contre, le programme d’installation peut inscrire les DLL à l’aide des tables de Registre sans dépendance vis-à-vis de l’état actuel du système.

Notes

Vous ne pouvez pas spécifier l’ordre dans lequel le programme d’installation inscrit ou annule l’inscription automatique des DLL à l’aide des actions SelfRegModules et SelfUnRegModules. Consultez Spécification de l’ordre de l’auto-inscription.

 

Validation

ICE03
ICE06
ICE32