Como visualizar a pasta e os arquivos no GAC?

109

Quero ver as pastas e subpastas no GAC . Também quero saber sobre como adicionar e remover do GAC .

Para instalar, escrevemos essas linhas no prompt de comando abrindo Visual Studio command prompt: -

gacutil /i [assembly path]

Mas para desinstalar, precisamos apenas: -

gacutil /u [assembly name]

Por quê?

Rohit Vipin Mathews
fonte
Se você for a uma das pastas de montagem no diretório do Windows, digite o nome de uma dll que está procurando na barra de pesquisa (do explorador de arquivos); eles devem começar a aparecer.
JakeJ de

Respostas:

135

Instalar:

gacutil -i "path_to_the_assembly"

Visão:

Abra na pasta do Windows Explorer

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

OU gacutil –l

Ao instalar um assembly, você deve especificar onde gacutilencontrá-lo, portanto, também é necessário fornecer um caminho completo. Mas quando um assembly já está no GAC - gacutilconheça um caminho de pasta, então ele só precisa de um nome de assembly.

MSDN:

sll
fonte
4
Observe que para .NET 4.0, o local do GAC agora é:% windir% \ Microsoft.NET \ assembly \
Alex Nolasco
57

Estou um dia atrasado e um dólar a menos neste. Se você deseja visualizar a estrutura de pastas do GAC no Windows Explorer, pode fazer isso usando o registro :

  1. Inicie o regedit.
  2. Navegue até HKLM \ Software \ Microsoft \ Fusion
  3. Adicione um DWORD chamado DisableCacheViewer e defina o valor como 1.

Para uma visualização temporária, você pode substituir o caminho da pasta por uma unidade, o que remove as propriedades especiais do diretório.

  1. Inicie um prompt de comando no nível de privilégio da sua conta .
  2. Digite SUBST Z: C: \ Windows \ assembly
    • Z pode ser qualquer letra de unidade livre.
  3. Abra Meu computador e procure no novo diretório substituto.
  4. Para remover a unidade virtual do prompt de comando, digite SUBST Z: / D

Quanto ao motivo de você querer fazer algo assim, usei este truque para comparar DLLs do GAC entre máquinas diferentes para ter certeza de que são realmente as mesmas.

Rakuen42
fonte
Você pode automatizar a edição do registro com o Powershell:
Textcape
Novo-item 'HKLM: \ Software \ Microsoft \ Fusion' -Force | New-ItemProperty -Name "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape
40

Inicie o programa "Executar" (Windows Vista / 7/8: digite-o na barra de pesquisa do menu iniciar) e digite: C:\windows\assembly\GAC_MSIL

Em seguida, vá para a pasta pai (Windows Vista / 7/8: clicando nela na barra do explorer) para ver todos os arquivos GAC em uma janela normal do explorer. Agora você pode copiar, adicionar e remover arquivos como em qualquer outro lugar.

Julius Kunze
fonte
Obrigado - permitiu-me usar o Windows Explorer, que foi considerado obsoleto desde .NET 4
Dave Friedel
8

Para visualizar os arquivos, basta navegá-los no prompt de comando ( cmd), por exemplo:

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

Para adicionar e remover arquivos do GAC use a ferramenta gacutil

Klaus Byskov Pedersen
fonte
eu quero vê-lo como uma pasta normal.
Rohit Vipin Mathews
@CodingMastero NÃO é uma pasta normal!
Klaus Byskov Pedersen
Não podemos usar algum hack para vê-lo como normal?
Rohit Vipin Mathews
@CodingMastero Não, você não pode. Você pode visualizá-lo através do prompt de comando, conforme indicado acima.
Klaus Byskov Pedersen
1
Sim. Desculpe, posso não ter sido claro aqui. Você não pode usar C:\Windows\assemblypara navegar no .NET 4.0 GAC. Claro que você ainda pode usá-lo com .NET 2/3 (se ele também estiver instalado). Não há extensões de shell comparáveis ​​(AFAIK) que funcionem da mesma maneira para o novo C:\Windows\Microsoft.NET\assemblydiretório.
Christian.K
5

Você instala como conjuntos usando:

  • Um programa de instalação criado por você para o seu aplicativo.
  • Usando a gacutil.exeferramenta com a -iopção da linha de comando.
  • Soltando o assembly %windir%\Assembly(apenas até .NET 3.5, CLR 2.0)

Você visualiza o conteúdo do GAC usando:

  • A gacutil.exeferramenta com -lopção.
  • Para .NET 2.0, 3.0 e 3.5 (CLR 2.0) navegando até %windir%\assemblyusando o Windows Explorer.

Observe que o local (físico) do GAC foi alterado para .NET 4.0. Não está mais dentro %windir%\Assembly, mas agora dentro %windir%\Microsoft.NET\assembly. No entanto, você nunca deve escrever qualquer código que dependa da localização física de qualquer maneira, porque dadas as ferramentas disponíveis, isso dificilmente é necessário (algumas ferramentas de diagnóstico de sistema caseiras "legais" à parte).

Christian.K
fonte
Além disso, gacutil.exea única outra ferramenta disponível que conheço é o fusion.dll.
Scott Solmer