Come visualizzare la cartella e i file in GAC?


109

Voglio visualizzare le cartelle e le sottocartelle in GAC . Voglio anche sapere come aggiungere e rimuovere da GAC .

Per installare scriviamo queste righe nel prompt dei comandi aprendo Visual Studio command prompt: -

gacutil /i [assembly path]

Ma per disinstallare abbiamo bisogno solo di: -

gacutil /u [assembly name]

Perché?


Se vai in una delle cartelle di assembly nella directory di Windows, quindi digita un nome dll che stai cercando nella barra di ricerca (di Esplora file), dovrebbero iniziare a essere visualizzate.
JakeJ

Risposte:


135

Installare:

gacutil -i "path_to_the_assembly"

Visualizza:

Apri nella cartella Esplora risorse di Windows

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

O gacutil –l

Quando si installa un assembly, è necessario specificare dove gacutiltrovarlo, quindi è necessario fornire anche un percorso completo. Ma quando un assembly è già in GAC, gacutilconoscere il percorso di una cartella, quindi è necessario solo un nome di assembly.

MSDN:


4
Nota che per .NET 4.0 la posizione GAC è ora:% windir% \ Microsoft.NET \ assembly \
Alex Nolasco

57

Sono in ritardo di un giorno e manca un dollaro su questo. Se desideri visualizzare la struttura delle cartelle del GAC in Windows Explorer, puoi farlo utilizzando il registro :

  1. Avvia regedit.
  2. Accedi a HKLM \ Software \ Microsoft \ Fusion
  3. Aggiungi un DWORD chiamato DisableCacheViewer e imposta il valore su 1.

Per una visualizzazione temporanea, è possibile sostituire un'unità per il percorso della cartella, che rimuove le proprietà speciali della directory.

  1. Avvia un prompt dei comandi al livello di privilegio del tuo account .
  2. Digita SUBST Z: C: \ Windows \ assembly
    • Z può essere qualsiasi lettera di unità libera.
  3. Apri Risorse del computer e cerca nella nuova directory sostitutiva.
  4. Per rimuovere l'unità virtuale dal prompt dei comandi, digita SUBST Z: / D

Per quanto riguarda il motivo per cui vorresti fare qualcosa del genere, ho usato questo trucco per confrontare le DLL GAC tra macchine diverse per assicurarmi che siano veramente le stesse.


Puoi automatizzare la modifica del registro con Powershell:
Textcape

Nuovo elemento "HKLM: \ Software \ Microsoft \ Fusion" -Force | New-ItemProperty -Name "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape

40

Avvia il programma "Esegui" (Windows Vista / 7/8: digitalo nella barra di ricerca del menu di avvio) e digita: C:\windows\assembly\GAC_MSIL

Quindi spostati nella cartella principale (Windows Vista / 7/8: facendo clic su di essa nella barra di esplorazione) per vedere tutti i file GAC in una normale finestra di esplorazione. Ora puoi copiare, aggiungere e rimuovere file come ovunque.


Grazie - mi ha permesso di utilizzare Windows Explorer che è stato contrassegnato come obsoleto da .NET 4
Dave Friedel

8

Per visualizzare i file basta sfogliarli dal prompt dei comandi ( cmd), ad esempio:

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

Per aggiungere e rimuovere file dal GAC utilizzare lo strumento gacutil


voglio vederlo come una normale cartella.
Rohit Vipin Mathews,

@CodingMastero NON è una normale cartella!
Klaus Byskov Pedersen

Non possiamo usare qualche trucco per vederlo come normale?
Rohit Vipin Mathews,

@CodingMastero No non puoi. Puoi visualizzarlo tramite il prompt dei comandi come indicato sopra.
Klaus Byskov Pedersen

1
Sì. Scusa, forse non sono stato chiaro qui. Non è possibile utilizzare C:\Windows\assemblyper esplorare il GAC .NET 4.0. Ovviamente puoi ancora usarlo con .NET 2/3 (se è installato anche quello). Non ci sono estensioni di shell comparabili (AFAIK) che funzionano allo stesso modo per la nuova C:\Windows\Microsoft.NET\assemblydirectory.
Christian.K

5

Si installa come assembly utilizzando:

  • Un programma di installazione creato da te per la tua applicazione.
  • Utilizzo dello gacutil.exestrumento con l' -iopzione dalla riga di comando.
  • Rilascio dell'assembly %windir%\Assembly(solo fino a .NET 3.5, CLR 2.0)

Puoi visualizzare il contenuto del GAC utilizzando:

  • Lo gacutil.exestrumento con l' -lopzione.
  • Per .NET 2.0, 3.0 e 3.5 (CLR 2.0) esplorando %windir%\assemblyutilizzando Esplora risorse.

Notare che la posizione (fisica) GAC è cambiata per .NET 4.0. Non è più dentro %windir%\Assembly, ma ora dentro %windir%\Microsoft.NET\assembly. Tuttavia, non si dovrebbe mai scrivere alcun codice che dipenda dalla posizione fisica in ogni caso, perché dati gli strumenti disponibili non è quasi necessario (a parte alcuni strumenti di diagnostica di sistema "fantastici" fatti in casa).


Oltre gacutil.exeall'unico altro strumento disponibile di cui sono a conoscenza è fusion.dll.
Scott Solmer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.