Compartir a través de


Caché global de ensamblados

Nota:

Este artículo es específico de .NET Framework. No se aplica a implementaciones más recientes de .NET, incluidas .NET 6 y versiones posteriores.

Cada equipo en el que se instala Common Language Runtime tiene una caché de código de toda la máquina denominada Caché global de ensamblados. La caché global de ensamblados almacena ensamblados designados específicamente para compartirse con varias aplicaciones del equipo.

Se recomienda compartir los ensamblados mediante su instalación en la caché global de ensamblados solo cuando sea necesario. Como norma general, mantenga las dependencias de ensamblado privadas y busque ensamblados en el directorio de la aplicación a menos que se requiera explícitamente el uso compartido de un ensamblado. 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.

Nota:

Hay escenarios en los que no desea instalar explícitamente un conjunto en la caché global de conjuntos. Si coloca uno de los ensamblados que componen una aplicación en la caché global de ensamblados, ya no puede replicar ni instalar la aplicación mediante el comando xcopy para copiar el directorio de la aplicación. Además debe mover el ensamblado en la caché global de ensamblados.

Existen dos formas de implementar un ensamblado en la caché global de ensamblados:

  • Usar un instalador diseñado para funcionar con la caché global de ensamblados. Esta es la opción preferida para instalar ensamblados en la Caché Global de Ensamblados.

  • Use la herramienta de desarrollador Caché global de ensamblados (Gacutil.exe), que se suministra con Windows SDK.

    Nota:

    En escenarios de implementación, utilice Windows Installer para instalar ensamblados en la Global Assembly Cache. Use la herramienta Caché global de ensamblados solo en escenarios de desarrollo, ya que no proporciona recuento de referencias de ensamblados y otras características proporcionadas al usar Windows Installer.

A partir del .NET Framework 4, la ubicación predeterminada para la Caché de ensamblados global es %windir%\Microsoft.NET\assembly. En versiones anteriores de .NET Framework, la ubicación predeterminada es %windir%\assembly.

Los administradores suelen proteger el directorio systemroot mediante una lista de control de acceso (ACL) para controlar el acceso de escritura y ejecución. Dado que la caché global de ensamblados está instalada en un subdirectorio del directorio systemroot, hereda la ACL de ese directorio. Se recomienda que solo se permita a los usuarios con privilegios de administrador eliminar archivos de la caché global de ensamblados.

Los ensamblados implementados en la caché global de ensamblados deben tener nombres seguros. Cuando se agrega un ensamblado a la caché global de ensamblados, las comprobaciones de integridad se realizan en todos los archivos que componen el ensamblado. La memoria caché realiza estas comprobaciones de integridad para asegurarse de que un ensamblado no se ha alterado, por ejemplo, cuando un archivo ha cambiado, pero el manifiesto no refleja el cambio.

Consulte también