Global Assembly CacheGlobal Assembly Cache

Sur chaque ordinateur où le Common Language Runtime est installé, il y a un cache de code machine appelé Global Assembly Cache.Each computer where the Common Language Runtime is installed has a machine-wide code cache called the Global Assembly Cache. Le Global Assembly Cache stocke des assemblys spécialement destinés à être partagés entre plusieurs applications sur l’ordinateur.The Global Assembly Cache stores assemblies specifically designated to be shared by several applications on the computer.

Partagez des assemblys en les installant dans le Global Assembly Cache uniquement si cela est nécessaire.You should share assemblies by installing them into the Global Assembly Cache only when you need to. En règle générale, vous devez maintenir les dépendances d’assembly privées et rechercher les assemblys dans le répertoire de l’application, sauf si le partage d’un assembly est explicitement requis.As a general guideline, keep assembly dependencies private, and locate assemblies in the application directory unless sharing an assembly is explicitly required. De plus, il n’est pas nécessaire d’installer des assemblys dans le Global Assembly Cache pour les rendre accessibles à COM Interop ou au code non managé.In addition, it is not necessary to install assemblies into the Global Assembly Cache to make them accessible to COM interop or unmanaged code.

Notes

Dans certains scénarios, vous ne devez pas installer d’assembly dans le Global Assembly Cache.There are scenarios where you explicitly do not want to install an assembly into the Global Assembly Cache. Si vous placez l’un des assemblys composant une application dans le Global Assembly Cache, vous ne pouvez plus répliquer ni installer l’application en utilisant la commande xcopy pour copier le répertoire de l’application.If you place one of the assemblies that make up an application in the Global Assembly Cache, you can no longer replicate or install the application by using the xcopy command to copy the application directory. Vous devez également déplacer l’assembly dans le Global Assembly Cache.You must move the assembly in the Global Assembly Cache as well.

Il existe deux manières de déployer un assembly dans le Global Assembly Cache :There are two ways to deploy an assembly into the Global Assembly Cache:

  • Utiliser un programme d’installation conçu pour fonctionner avec le Global Assembly Cache.Use an installer designed to work with the Global Assembly Cache. Il s’agit de l’option par défaut d’installation des assemblys dans le Global Assembly Cache.This is the preferred option for installing assemblies into the Global Assembly Cache.

  • Utiliser un outil de développement appelé Outil Global Assembly Cache (Gacutil.exe) fourni par le SDK Windows.Use a developer tool called the Global Assembly Cache tool (Gacutil.exe), provided by the Windows SDK.

    Notes

    Dans les scénarios de déploiement, utilisez Windows Installer pour installer des assemblys dans le Global Assembly Cache.In deployment scenarios, use Windows Installer to install assemblies into the Global Assembly Cache. Utilisez l’outil Global Assembly Cache uniquement dans les scénarios de développement, car il ne propose pas de fonctionnalités de décompte des références d’assembly et d’autres fonctionnalités disponibles lors de l’utilisation de Windows Installer.Use the Global Assembly Cache tool only in development scenarios, because it does not provide assembly reference counting and other features provided when using the Windows Installer.

À compter du .NET Framework 4, l’emplacement par défaut du Global Assembly Cache est %windir%\Microsoft.NET\assembly.Starting with the .NET Framework 4, the default location for the Global Assembly Cache is %windir%\Microsoft.NET\assembly. Dans les versions antérieures du .NET Framework, l’emplacement par défaut est %windir%\assembly.In earlier versions of the .NET Framework, the default location is %windir%\assembly.

Les administrateurs protègent souvent le répertoire systemroot en utilisant une liste de contrôle d’accès pour contrôler l’accès en écriture et en exécution.Administrators often protect the systemroot directory using an access control list (ACL) to control write and execute access. Le Global Assembly Cache étant installé dans un sous-répertoire du répertoire systemroot, il hérite de la liste ACL de ce répertoire.Because the Global Assembly Cache is installed in a subdirectory of the systemroot directory, it inherits that directory's ACL. Il est recommandé que seuls les utilisateurs ayant des privilèges d’administrateur soient autorisés à supprimer des fichiers du Global Assembly Cache.It is recommended that only users with Administrator privileges be allowed to delete files from the Global Assembly Cache.

Les assemblys déployés dans le Global Assembly Cache doivent avoir un nom fort.Assemblies deployed in the Global Assembly Cache must have a strong name. Quand un assembly est ajouté au Global Assembly Cache, des contrôles d’intégrité sont effectués sur tous les fichiers qui composent l’assembly.When an assembly is added to the Global Assembly Cache, integrity checks are performed on all files that make up the assembly. Le cache effectue ces contrôles d’intégrité pour vérifier qu’aucun assembly n’a été falsifié, par exemple quand un fichier a changé mais que le manifeste ne reflète pas ce changement.The cache performs these integrity checks to ensure that an assembly has not been tampered with, for example, when a file has changed but the manifest does not reflect the change.

Voir aussiSee also