¿Cómo ver la carpeta y los archivos en GAC?

109

Quiero ver las carpetas y subcarpetas en GAC . También quiero saber cómo agregar y quitar de GAC .

Para instalar, escribimos estas líneas en el símbolo del sistema abriendo Visual Studio command prompt: -

gacutil /i [assembly path]

Pero para desinstalar solo necesitamos: -

gacutil /u [assembly name]

¿Por qué?

Rohit Vipin Mathews
fuente
Si va a una de las carpetas de ensamblaje en el directorio de Windows, luego escriba un nombre dll que está buscando en la barra de búsqueda (del explorador de archivos), deberían comenzar a aparecer.
JakeJ

Respuestas:

135

Instalar en pc:

gacutil -i "path_to_the_assembly"

Ver:

Abrir en la carpeta del Explorador de Windows

  • .NET 1.0 - NET 3.5: c:\windows\assembly( %systemroot%\assembly)
  • .NET 4.x: %windir%\Microsoft.NET\assembly

O gacutil –l

Cuando vaya a instalar un ensamblaje, debe especificar dónde gacutilpuede encontrarlo, por lo que también debe proporcionar una ruta completa. Pero cuando un ensamblado ya está en GAC, gacutilconozca una ruta de carpeta, por lo que solo necesita un nombre de ensamblado.

MSDN:

sll
fuente
4
Tenga en cuenta que para .NET 4.0 la ubicación de GAC ahora es:% windir% \ Microsoft.NET \ assembly \
Alex Nolasco
57

Llego un día tarde y un dólar corto en este. Si desea ver la estructura de carpetas del GAC en el Explorador de Windows, puede hacerlo mediante el registro :

  1. Inicie regedit.
  2. Navegue a HKLM \ Software \ Microsoft \ Fusion
  3. Agregue un DWORD llamado DisableCacheViewer y establezca el valor en 1.

Para una vista temporal, puede sustituir una unidad por la ruta de la carpeta, lo que elimina las propiedades especiales del directorio.

  1. Inicie un símbolo del sistema en el nivel de privilegios de su cuenta .
  2. Escriba SUBST Z: C: \ Windows \ assembly
    • Z puede ser cualquier letra de unidad libre.
  3. Abra Mi PC y busque en el nuevo directorio sustituto.
  4. Para eliminar la unidad virtual del símbolo del sistema, escriba SUBST Z: / D

En cuanto a por qué querría hacer algo como esto, he usado este truco para comparar archivos DLL de GAC entre diferentes máquinas para asegurarme de que sean realmente iguales.

Rakuen42
fuente
Puede automatizar la edición del registro con Powershell:
Textcape
Nuevo elemento 'HKLM: \ Software \ Microsoft \ Fusion' -Force | New-ItemProperty -Name "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape
40

Inicie el programa "Ejecutar" (Windows Vista / 7/8: escríbalo en la barra de búsqueda del menú de inicio) y escriba: C:\windows\assembly\GAC_MSIL

Luego, muévase a la carpeta principal (Windows Vista / 7/8: haciendo clic en ella en la barra del explorador) para ver todos los archivos GAC en una ventana normal del explorador. Ahora puede copiar, agregar y eliminar archivos como en cualquier otro lugar.

Julius Kunze
fuente
Gracias, me permitió usar el Explorador de Windows que estaba marcado como obsoleto desde .NET 4
Dave Friedel
8

Para ver los archivos, simplemente búsquelos desde el símbolo del sistema ( cmd), por ejemplo:

c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir

Para agregar y eliminar archivos del GAC, use la herramienta gacutil

Klaus Byskov Pedersen
fuente
quiero verlo como una carpeta normal.
Rohit Vipin Mathews
@CodingMastero ¡ NO es una carpeta normal!
Klaus Byskov Pedersen
¿No podemos usar algún truco para verlo como uno normal?
Rohit Vipin Mathews
@CodingMastero No, no puedes. Puede verlo a través del símbolo del sistema como se indicó anteriormente.
Klaus Byskov Pedersen
1
Si. Lo siento, puede que no haya sido claro aquí. No puede utilizar C:\Windows\assemblypara navegar por .NET 4.0 GAC. Por supuesto, aún puede usarlo con .NET 2/3 (si también está instalado). No hay extensiones de shell comparables (AFAIK) que funcionen de la misma manera para el nuevo C:\Windows\Microsoft.NET\assemblydirectorio.
Christian.K
5

Se instala como ensamblajes usando:

  • Un programa de instalación que usted crea para su aplicación.
  • Usando la gacutil.exeherramienta con la -iopción desde la línea de comando.
  • Colocar el ensamblaje %windir%\Assembly(solo hasta .NET 3.5, CLR 2.0)

Puede ver el contenido del GAC usando:

  • La gacutil.exeherramienta con la -lopción.
  • Para .NET 2.0, 3.0 y 3.5 (CLR 2.0) navegue hasta %windir%\assemblyusar el Explorador de Windows.

Tenga en cuenta que la ubicación (física) de GAC ha cambiado para .NET 4.0. Ya no está dentro %windir%\Assembly, sino ahora dentro %windir%\Microsoft.NET\assembly. Sin embargo, nunca debe escribir ningún código que dependa de la ubicación física de todos modos, porque dadas las herramientas disponibles, eso apenas es necesario (aparte de algunas herramientas de diagnóstico del sistema "geniales").

Christian.K
fuente
Además, gacutil.exela única otra herramienta disponible que conozco es fusion.dll.
Scott Solmer