stringtranslate.com

Caché de ensamblaje global

La caché de ensamblados global ( GAC ) es una caché de ensamblados CLI para toda la máquina para la infraestructura de lenguaje común (CLI) en .NET Framework de Microsoft. El enfoque de tener un repositorio central especialmente controlado aborda las fallas [ cita requerida ] en el concepto de biblioteca compartida y ayuda a evitar los problemas de otras soluciones que llevaron a inconvenientes como el infierno de DLL .

Requisitos

Los ensambles que residen en el GAC deben cumplir con un esquema de control de versiones específico que permita la ejecución en paralelo de diferentes versiones de código. En concreto, dichos ensambles deben tener un nombre seguro .

Uso

Hay dos formas de interactuar con el GAC: la herramienta de caché de ensamblados global (gacutil.exe) y el visor de caché de ensamblados (shfusion.dll).

Herramienta de caché de ensamblaje global

gacutil.exe es una utilidad de línea de comandos más antigua que se envió con .NET 1.1 y todavía está disponible con el SDK de .NET. [1]

Se puede comprobar la disponibilidad de un ensamblaje compartido en GAC utilizando el comando:

gacutil.exe /l <nombreDeEnsamblaje>

Se puede registrar un ensamblaje compartido en el GAC utilizando el comando:

gacutil.exe /i <nombreDeEnsamblaje>

O copiando un archivo de ensamblaje en la siguiente ubicación:

%windir%\ensamblaje\

Tenga en cuenta que para .NET 4.0 la ubicación de GAC ahora es:

%windir%\Microsoft.NET\ensamblaje\

Se describirán brevemente otras opciones para esta utilidad si utiliza el indicador /?, es decir:

gacutil.exe/?

Visor de caché de ensamblaje

La interfaz más nueva, el Visor de caché de ensamblajes, está integrada en el Explorador de Windows . [2] Al explorar %windir%\assembly\(por ejemplo, C:\WINDOWS\assembly) o %WINDIR%\Microsoft.NET\assembly, se muestran los ensamblajes contenidos en la caché junto con sus versiones, cultura, token de clave pública y arquitectura de procesador. Los ensamblajes se instalan arrastrándolos y soltándolos, y se desinstalan seleccionándolos y presionando la tecla eliminar o usando el menú contextual .

Con el lanzamiento de .NET Framework 4, la extensión de shell Assembly Cache Viewer quedó obsoleta. [3]

Ejemplo de uso

Una computadora tiene dos ensamblajes CLI , ambos llamados AssemblyA , pero uno es la versión 1.0 y el otro es la versión 2.0. Dado que se requiere que ambos se compilen en un archivo llamado AssemblyA, no pueden existir en el mismo directorio dentro del sistema de archivos FAT32 . En cambio, el sistema de archivos virtual del GAC puede ser utilizado por programas que necesitan usar cada versión del ensamblaje específicamente.

Implementación

El GAC como construcción no existe realmente dentro del sistema operativo Windows. Se implementa y administra mediante la CLI. Las carpetas dentro de %systemroot% llamadas assembly y Microsoft.NET\assembly (para .NET 4.0) contienen todos los ensamblados disponibles globalmente con nombres de archivo administrados para que se puedan incluir los tokens de versión y clave pública. Por lo tanto, cada versión puede existir dentro de la misma ubicación y ser llamada sin necesidad de que las versiones posteriores conserven las ubicaciones de los puntos de entrada de código como de costumbre. El Explorador de Windows permite la instalación de ensamblados mediante arrastrar y soltar en esta carpeta solo si, de lo contrario, se permitiría su instalación desde la línea de comandos.

Una aplicación que llama puede especificar una versión de un ensamblaje al hacer referencia a él, de modo que el tiempo de ejecución puede simplemente referirse al nombre del archivo para usar el correcto.

Trampas

El mecanismo de caché de ensamblaje global ayuda a evitar el infierno de las DLL antiguas , pero aún tiene algunos inconvenientes, como: [4]

Véase también

Referencias

  1. ^ "Herramienta de caché de ensamblado global (Gacutil.exe)". Redmond, Washington : Microsoft Corporation . Archivado desde el original el 17 de julio de 2013. Consultado el 27 de mayo de 2010 .
  2. ^ "Visor de caché de ensamblado (Shfusion.dll)". Redmond, Washington : Microsoft Corporation . Archivado desde el original el 30 de julio de 2013. Consultado el 27 de mayo de 2010 .
  3. ^ "Cómo ver el contenido de la caché de ensamblados global". Redmond, Washington : Microsoft Corporation . Archivado desde el original el 19 de julio de 2013. Consultado el 22 de julio de 2010 .
  4. ^ John, Mueller (11 de febrero de 2005). "Diez trampas de las aplicaciones administradas que acaban con la compatibilidad de versiones". devsource.com. Archivado desde el original el 21 de enero de 2013. Consultado el 26 de enero de 2008 .

Enlaces externos