Turn on more accessible mode
Skip Ribbon Commands
Skip to main content
Turn on Animations

El Global Assembly Cache (GAC)

Trucos


El Global Assembly Cache (GAC) es un sitio centralizado para guardar ensamblados (dll) de tal forma que puedan ser utilizados por diferentes aplicaciones
Autor: Gustavo

El GAC fue introducido por primera vez con el Frame Work 1.0 de DotNet como un medio para reemplazar el registro de dll´s en el Registry.

En SharePoint, como WebParts y WebControls utilizan ensamblados, se puede utilizar el GAC en lugar de la raíz de IIS como deposito. Aunque visto desde el punto de vista de la arquitectura del sistema, utilizar el GAC para este propósito no es recomendable (WebParts no son utilizadas por diferentes aplicaciones, solamente por una), técnicamente es posible de hacerlo así.

El único requisito para utilizar el GAC es que el compilado tenga un "Nombre fuerte" ("Strong Name"), es decir, que sea compilado con una llave generada por la herramienta "sn.exe". Instrucciones para compilar con un "Strong Name" se pueden encontrar en el articulo "Programando WebParts - Parte 1: Los principios básicos".

Si se desea registrar un dll en el GAC, se puede utilizar la herramienta "GACUtil.exe", que es instalada por defecto por DotNet. Para instalar un dll en el GAC, use la sintaxis:

gacutil /i MiAssembly.dll

y para desinstalarlo de nuevo, use la sintaxis:

gacutil /u MiAssembly.dll

para crear una lista de ensamblados en el GAC utilice la sintaxis:

gacutil /l

Información de Microsoft sobre esta herramienta se puede encontrar en el articulo "Global Assembly Cache Tool (Gacutil.exe)".

Ensamblados que ya están instalados en el GAC se pueden copiar hacia un directorio del sistema. Esto es necesario, por ejemplo, cuando se quieren utilizar dll´s de SharePoint en una maquina remota, y hay que tener copias locales de ellos. Utilice la siguiente sintaxis en una pantalla de Símbolo del Sistema, para copiar un dll desde el GAC en un archivo:

copy %systemroot%\assembly\gac\[nombre en GAC]\[versión]__[Public Key Token]\[nombre en GAC.dll] [ruta_destino]

Note que hay dos guiones entre "versión" y "Public Key Token".

Por ejemplo, el siguiente comando copia el dll "Microsoft.SharePoint.Portal.dll" al directorio "C:/Temp":

C:\Documents and Settings\Administrator>copy %systemroot%\assembly\gac\ Microsoft.SharePoint.Portal\11.0.0.0__ 71e9bce111e9429c\ Microsoft.SharePoint.Portal.dll c:\temp\Microsoft.SharePoint.Portal.dll

La versión y el Public Key Token se pueden encontrar en las propiedades del respectivo ensamblado en el directorio "C:\WINDOWS\assembly"