Caché global de ensambladosGlobal Assembly Cache

Cada equipo donde está instalado Common Language Runtime tiene una memoria caché de código denominada caché global de ensamblados.Each computer where the Common Language Runtime is installed has a machine-wide code cache called the Global Assembly Cache. La caché global de ensamblados almacena los ensamblados designados específicamente para ser compartidos por varias aplicaciones del equipo.The Global Assembly Cache stores assemblies specifically designated to be shared by several applications on the computer.

Se recomienda compartir los ensamblados mediante su instalación en la caché global de ensamblados solo cuando sea necesario.You should share assemblies by installing them into the Global Assembly Cache only when you need to. Como norma general, mantenga las dependencias de los ensamblados privadas y coloque los ensamblados en el directorio de la aplicación, a menos que sea explícitamente necesario compartir un ensamblado en concreto.As a general guideline, keep assembly dependencies private, and locate assemblies in the application directory unless sharing an assembly is explicitly required. Además, no es necesario instalar los ensamblados en la caché global de ensamblados para que el código de interoperabilidad COM o el código no administrado puedan acceder a ellos.In addition, it is not necessary to install assemblies into the Global Assembly Cache to make them accessible to COM interop or unmanaged code.

Nota

Hay algunos escenarios en los que no se quiere instalar explícitamente un ensamblado en la caché global de ensamblados.There are scenarios where you explicitly do not want to install an assembly into the Global Assembly Cache. Si coloca uno de los ensamblados que forman una aplicación en la caché global de ensamblados, ya no puede replicar ni instalar la aplicación mediante el comando xcopy para copiar su directorio.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. Además debe mover el ensamblado en la caché global de ensamblados.You must move the assembly in the Global Assembly Cache as well.

Existen dos formas de implementar un ensamblado en la caché global de ensamblados:There are two ways to deploy an assembly into the Global Assembly Cache:

  • Usar un instalador diseñado para funcionar con la caché global de ensamblados.Use an installer designed to work with the Global Assembly Cache. Es la opción preferida para instalar ensamblados en la caché global de ensamblados.This is the preferred option for installing assemblies into the Global Assembly Cache.

  • Use la herramienta de desarrollador Caché global de ensamblados (Gacutil.exe), que se suministra con el kit de desarrollo de software (SDK) de Windows.Use a developer tool called the Global Assembly Cache tool (Gacutil.exe), provided by the Windows Software Development Kit (SDK).

    Nota

    En escenarios de implementación, use Windows Installer para instalar los ensamblados en la caché global de ensamblados.In deployment scenarios, use Windows Installer to install assemblies into the Global Assembly Cache. Utilice la herramienta Caché global de ensamblados solo en escenarios de desarrollo, porque no proporciona funciones de recuento de referencias de ensamblados y otras características que se incluyen con 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.

A partir de .NET Framework 4, la ubicación predeterminada de la caché global de ensamblados es %windir%\Microsoft.NET\assembly.Starting with the .NET Framework 4, the default location for the Global Assembly Cache is %windir%\Microsoft.NET\assembly. En versiones anteriores de .NET Framework, la ubicación predeterminada es %windir%\assembly.In earlier versions of the .NET Framework, the default location is %windir%\assembly.

Con frecuencia, los administradores protegen el directorio systemroot con una lista de control de acceso (ACL) para controlar el acceso de escritura y ejecución.Administrators often protect the systemroot directory using an access control list (ACL) to control write and execute access. Puesto que la caché global de ensamblados está instalada en un subdirectorio del directorio systemroot, hereda la ACL de dicho directorio.Because the Global Assembly Cache is installed in a subdirectory of the systemroot directory, it inherits that directory's ACL. Se recomienda que solo los usuarios que tengan privilegios de administrador puedan eliminar archivos de la caché global de ensamblados.It is recommended that only users with Administrator privileges be allowed to delete files from the Global Assembly Cache.

Los ensamblados implementados en la caché global de ensamblados deben tener nombres seguros.Assemblies deployed in the Global Assembly Cache must have a strong name. Cuando se agrega un ensamblado a la caché global de ensamblados, se realizan comprobaciones de integridad de todos los archivos que componen el ensamblado.When an assembly is added to the Global Assembly Cache, integrity checks are performed on all files that make up the assembly. La caché realiza estas comprobaciones de integridad para garantizar que no se ha manipulado ningún ensamblado, por ejemplo, cuando se ha modificado un archivo pero el manifiesto no refleja el cambio.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.

Vea tambiénSee also