Qué es el GAC in.NET?
Solo busco un breve resumen de GAC para un lego, no un enlace por favor.
8 answers
Correcto, así que básicamente es una manera de mantener las DLL accesibles globalmente sin preocuparse por los conflictos. No más DLL Infierno. Cada arquitectura y versión tiene su propio lugar para vivir.
También tiene su propia manera de navegar en el Explorador, por lo que si vas a
C:\Windows\assembly
En el explorador de Windows 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í puedes ver la versión 2.0.0.0 _ _ b77a5c561934e089 del Sistema.Datos.
Una DLL se identifica por 5 partes:
- Nombre
- Versión
- Arquitectura
- Cultura
- Clave pública
Aunque los primeros 3 son generalmente los grandes.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-12 20:06:00
GAC = Caché de Ensamblaje global
Vamos a desglosarlo:
- global-se aplica a toda la máquina
- assembly - lo que. NET llama a sus bibliotecas de código (DLL)
- cache-un lugar para almacenar cosas para un acceso más rápido/común
Así que el GAC debe ser un lugar para almacenar bibliotecas de código para que sean accesibles a todas las aplicaciones que se ejecutan en la máquina.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-12 20:37:22
Caché de Ensamblaje Global
Cada equipo donde el común idioma tiempo de ejecución está instalado tiene un caché de código de toda la máquina llamada caché de ensamblaje global. Global la caché de ensamblajes almacena ensamblajes específicamente designado para ser compartido por varias aplicaciones en el ordenador.
Debe compartir asambleas por instalarlos en el global caché de ensamblaje solo cuando sea necesario. Como guía general, mantener el montaje dependencia privado, y localizar ensamblajes en la aplicación directorio a menos que se comparta un ensamblado se requiere explícitamente. Además, no es necesario instalar asambleas en la asamblea global caché para hacerlos accesibles a COM código interop o no administrado.
Las cosas que contiene MSDN pueden sorprenderte... por lo general, se puede leer como un artículo. Las partes directas y más importantes en la parte superior, los detalles intrincados más abajo. Ciertamente lo explica mejor de lo que yo podría.
Tenga en cuenta que Visual Studio muestra todas las DLL del GAC en la pestaña.NET de la ventana Referencias. (Haga clic derecho en un proyecto en el Explorador de soluciones y seleccione Agregar referencia.) Esto debería darte una idea más tangible.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-12 20:00:08
Biblioteca DLL centralizada.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-12 19:55:41
Aplicación Exe, en primer lugar, hace referencia desde un directorio actual a un subdirectorio. Y luego, directorio del sistema. El directorio del sistema VS6. 0 era ..windows / system32. El directorio del sistema. NET es como la ruta GAC a continuación.
-
Ruta GAC
1) C:\Windows\Assembly (para. NET 2.0 ~ 3.5)
2) C:\WINDOWS\Micorosoft.NET\assembly (para. NET 4.0)
-
Cómo instalar un ensamblado en GAC (como Administrador)
1) Arrastrar y soltar
2) Uso GacUtil.exe con Símbolo del sistema de Visual Studio
gacutil -i [Path][Assembly Name].dll
- Nota: Para instalar un ensamblado en el GAC, el ensamblado debe tener un nombre fuerte. De lo contrario, obtendrá un error como este: Error al agregar ensamblado a la caché: Intente instalar un ensamblado sin un nombre fuerte.
-
Cómo desinstalar un ensamblado 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 se pueden omitir y verificar en la asamblea del GAC.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-17 23:54:54
La Caché Global de Ensamblados (GAC) es una carpeta en el directorio de Windows para almacenar los ensamblados.NET que están específicamente designados para ser compartidos por todas las aplicaciones ejecutadas en un sistema. Los ensamblados se pueden compartir entre varias aplicaciones en la máquina registrándolos en global Assembly cache(GAC). GAC es una caché local de ensamblajes mantenida por.NET Framework.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-14 06:44:07
Es como el registro COM hecho bien, con respecto a los archivos físicos, así como su interfaz y la información de ubicación. En COM, los archivos estaban en todas partes, con metadatos centralizados. El GAC centraliza el rodaje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-12 22:48:21
GAC (Caché de ensamblado global) es donde residen todos los ensamblados de.NET compartidos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-04 05:02:26