Utilisation d'assemblys et du Global Assembly Cache

Mise à jour : novembre 2007

Si vous comptez partager un assembly entre plusieurs applications, vous pouvez l'installer dans le Global Assembly Cache. Chaque ordinateur sur lequel le Common Language Runtime est installé possède ce cache de code. Le Global Assembly Cache stocke les assemblys spécialement destinés à être partagés entre plusieurs applications sur l'ordinateur. Un assembly doit avoir un nom fort pour être installé dans le Global Assembly Cache.

Remarque :

Les assemblys placés dans le Global Assembly Cache doivent avoir le même nom d'assembly et le même nom de fichier (hormis l'extension de nom de fichier). Par exemple, un assembly avec le nom d'assembly myAssembly doit avoir le nom de fichier myAssembly.exe ou myAssembly.dll.

Vous devez partager des assemblys en les installant dans le Global Assembly Cache uniquement lorsque cela est nécessaire. En règle générale, maintenez les dépendances d'assembly privées et localisez les assemblys dans le répertoire de l'application, sauf si le partage d'un assembly est explicitement requis. En outre, vous n'avez pas besoin d'installer des assemblys dans le Global Assembly Cache pour les rendre accessibles à COM Interop ou au code non managé.

Il est possible d'installer un assembly dans le Global Assembly Cache pour plusieurs raisons :

  • Emplacement partagé.

    Les assemblys qui doivent être utilisés par les applications peuvent être placés dans le Global Assembly Cache. Par exemple, si toutes les applications doivent utiliser un assembly placé dans le Global Assembly Cache, une instruction de stratégie de version peut être ajoutée au fichier Machine.config pour rediriger les références vers l'assembly.

  • Sécurité des fichiers.

    Les administrateurs protègent souvent le répertoire systemroot en utilisant une liste de contrôle d'accès (ACL, Access Control List) pour contrôler l'accès en écriture et en exécution. Le Global Assembly Cache étant installé dans le répertoire systemroot, il hérite de la liste de contrôle d'accès de ce répertoire. Il est recommandé que seuls les utilisateurs disposant de privilèges d'administrateur soient autorisés à supprimer des fichiers du Global Assembly Cache.

  • Versioning côte à côte.

    Plusieurs copies des assemblys ayant le même nom, mais avec des informations de version différentes peuvent être conservées dans le Global Assembly Cache.

  • Emplacement de recherche supplémentaire.

    Le Common Language Runtime vérifie dans le Global Assembly Cache s'il existe un assembly correspondant à l'assembly demandé avant de tester ou d'utiliser les informations du code base dans un fichier de configuration.

Notez qu'il existe des scénarios au cours desquels vous ne souhaitez explicitement pas installer un assembly dans le Global Assembly Cache. Si vous placez l'un des assemblys composant une application dans le Global Assembly Cache, vous ne pouvez plus répliquer ou installer l'application en utilisant XCOPY pour copier le répertoire de l'application. Dans ce cas, vous devez également déplacer l'assembly dans le Global Assembly Cache.

Dans cette section

Rubriques connexes