La “Global Assembly Cache” es un repositorio de ensamblados .NET, a la que se puede acceder en modo compartido por todo el software programado bajo esta tecnología, evitando lo que se conocía como el “infierno de las DLL” (incompatibilidad entre versiones, problemas de memoria compartida, problemas para actualizar todas las copias de la librería en el PC, etc). En definitiva, la GAC tiene una serie de propiedades que la hacen muy interesante y la convierten en un punto y aparte en el modo de abordar este problema en sistemas operativos Windows.
En ocasiones puede ser de gran utilidad extraer una DLL de la GAC, por ejemplo, para usarla en entornos de hosting compartido. Para una empresa de hosting es complejo tener instalado en el sistema una gran variedad de componentes de terceros, ya que pueden sobrecargar, requieren más mantenimiento y hay posibilidades de afectar al sistema durante la instalación. En este caso y según el componente que queramos usar, es posible subir la DLL a la carpeta BIN y de esta manera poder acceder a la librería sin necesidad de instalarla. La mayoría de componentes dejan las librerías instaladas en la cache y mantienen una copia en la carpeta de instalación, pero otras sin embargo quedan “encerradas” en la GAC (como algunas del espacio de nombres Microsoft.Reporting).
Si accedemos a C:\Windows\Assembly se nos presenta una interfaz que no nos permite manejarlas (copiar, pegar). Necesitamos abrir una consola con permisos de administrador:
Acto seguido accedemos a la ruta C:\Windows\Assembly\GAC_MSIL.
Nos aparecerán listadas una gran variedad de carpetas, cada una de ellas referida a un ensamblado. Deberemos acceder a la deseada y volver a listar:
Aparece una carpeta con un formato que viene dado por la versión del ensamblado en primer lugar y el PublicKeyToken en segundo. Dentro de esta carpeta podremos acceder a la DLL buscada y copiarla donde deseemos.
- copy *.dll c:\destino
Saludos,






Hola, eso funciona con Windows 7, porque voy a morir si no encuentro una solución