visual the studio register installed first cache .net gac

.net - the - visual studio gac location



¿Qué es el GAC en.NET? (8)

GAC = caché de ensamblaje global

Vamos a descomponerlo:

  • global: se aplica a toda la máquina
  • ensamblado - lo que .NET llama sus bibliotecas de código (DLL)
  • caché: un lugar para guardar cosas para un acceso más rápido / común

Por lo tanto, el GAC debe ser un lugar para almacenar bibliotecas de códigos para que estén accesibles para todas las aplicaciones que se ejecutan en la máquina.

Solo estoy buscando una breve descripción de GAC para un lego, no un enlace, por favor.


Aplicación Exe, en primer lugar, referencias de un directorio actual a un subdirectorio. Y luego, el directorio del sistema. El directorio del sistema VS6.0 era ... windows / system32. El directorio de sistema .NET es como la ruta de GAC siguiente.

  1. Ruta GAC

    1) C: / Windows / Assembly (para .NET 2.0 ~ 3.5)

    2) C: / WINDOWS / Micorosoft.NET / assembly (para .NET 4.0)

  2. Cómo instalar un ensamblado en GAC (como administrador)

    1) Arrastrar y soltar

    2) Use GacUtil.exe con el símbolo del sistema de Visual Studio

    gacutil -i [Path][Assembly Name].dll

    • Nota: Para instalar un ensamblaje en el GAC, el ensamblaje debe tener un nombre fuerte. De lo contrario, obtendrá un error como este: Error al agregar el ensamblaje a la memoria caché: intente instalar un ensamblado sin un nombre seguro.
  3. Cómo desinstalar un ensamblaje de GAC (como administrador)

    gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh

    • Nota: no tiene extensión, .dll. La versión y PublickeyToken pueden omitirse y verificarse en el ensamblaje de GAC.

Biblioteca de DLL centralizada.


Correcto, básicamente es una forma de mantener las DLL accesibles a nivel mundial sin preocuparse por los conflictos. No más DLL Hell. Cada arquitectura y versión tiene su propio lugar para vivir.

También tiene su propia forma de navegar en Explorer, así que si vas a

C: / Windows / assembly

En Windows Explorer, enumera todas las DLL.

Pero si enciendes cmd , puedes ver cómo está realmente estructurado:

C:/Users/tritter>cd C:/Windows/assembly C:/Windows/assembly>dir Directory of C:/Windows/assembly 07/20/2009 02:18 PM <DIR> GAC 06/17/2009 04:22 PM <DIR> GAC_32 06/17/2009 04:22 PM <DIR> GAC_64 06/17/2009 04:22 PM <DIR> GAC_MSIL ...snip... 0 File(s) 0 bytes 9 Dir(s) 90,538,311,680 bytes free C:/Windows/assembly>cd GAC_64 C:/Windows/assembly/GAC_64>dir Directory of C:/Windows/assembly/GAC_64 06/17/2009 04:22 PM <DIR> . 06/17/2009 04:22 PM <DIR> .. 01/19/2008 09:54 AM <DIR> blbproxy ...snip... 01/19/2008 09:54 AM <DIR> srmlib 01/19/2008 06:11 AM <DIR> System.Data 01/19/2008 06:11 AM <DIR> System.Data.OracleClient ...snip... 0 File(s) 0 bytes 34 Dir(s) 90,538,311,680 bytes free C:/Windows/assembly/GAC_64>cd System.Data C:/Windows/assembly/GAC_64/System.Data>dir Directory of C:/Windows/assembly/GAC_64/System.Data 01/19/2008 06:11 AM <DIR> . 01/19/2008 06:11 AM <DIR> .. 04/11/2009 12:20 PM <DIR> 2.0.0.0__b77a5c561934e089 0 File(s) 0 bytes 3 Dir(s) 90,538,311,680 bytes free C:/Windows/assembly/GAC_64/System.Data>cd 2.0.0.0__b77a5c561934e089 C:/Windows/assembly/GAC_64/System.Data/2.0.0.0__b77a5c561934e089>dir Directory of C:/Windows/assembly/GAC_64/System.Data/2.0.0.0__b77a5c561934e089 04/11/2009 12:20 PM <DIR> . 04/11/2009 12:20 PM <DIR> .. 04/11/2009 12:12 PM 3,008,512 System.Data.dll 1 File(s) 3,008,512 bytes 2 Dir(s) 90,538,311,680 bytes free C:/Windows/assembly/GAC_64/System.Data/2.0.0.0__b77a5c561934e089>

Aquí puede ver la versión 2.0.0.0__b77a5c561934e089 de System.Data.

Un archivo DLL se identifica por 5 partes:

  1. Nombre
  2. Versión
  3. Arquitectura
  4. Cultura
  5. Llave pública

Aunque los primeros 3 son generalmente los grandes.


El Global Assembly Cache (GAC) es una carpeta en el directorio de Windows para almacenar los ensamblados de .NET que están específicamente designados para ser compartidos por todas las aplicaciones ejecutadas en un sistema. Los ensamblajes se pueden compartir entre varias aplicaciones en la máquina registrándolas en caché de ensamblaje global (GAC). GAC es una máquina de caché local de toda la máquina mantenida por .NET Framework.


Es como el registro COM hecho bien, con respecto a los archivos físicos, así como a su interfaz e información de ubicación. En COM, los archivos estaban en todas partes, con metadatos centralizados. El GAC centraliza el lanzamiento de bang.


GAC (Global Assembly Cache) es donde residen todos los ensamblados .NET compartidos.


Caché de ensamblaje global

Cada computadora donde está instalado el tiempo de ejecución de lenguaje común tiene un caché de código de toda la máquina llamado caché de ensamblaje global. El caché de ensamblaje global almacena ensamblajes específicamente designados para ser compartidos por varias aplicaciones en la computadora.

Debe compartir ensamblajes instalándolos en el caché de ensamblaje global solo cuando lo necesite. Como regla general, mantenga las dependencias de ensamblado privadas y ubique ensamblados en el directorio de la aplicación a menos que se requiera explícitamente compartir un ensamblaje. Además, no es necesario instalar ensamblajes en la caché de ensamblados global para hacerlos accesibles a la interoperabilidad COM o al código no administrado.

Las cosas que contiene MSDN pueden sorprenderlo ... generalmente puede leerlo como un artículo. Los bits directos e importantes en la parte superior, los detalles intrincados más profundos. Ciertamente lo explica mejor que yo.

Tenga en cuenta que Visual Studio muestra todas las DLL en el GAC en la pestaña .NET de la ventana Referencias . (Haga clic con el botón derecho en un proyecto en el Explorador de soluciones y seleccione Agregar referencia). Esto debería darle una idea más tangible.