Esiste un modo per utilizzare PowerShell per visualizzare il contenuto del GAC?Utilizzare PowerShell per visualizzare il contenuto della Global Assembly Cache (GAC)
risposta
Un'altra possibilità è che il PowerShell Community Extensions installa un fornitore di GAC, in modo da poter fare questo:
dir gac:
Se siete su PowerShell V2, essere sicuri di prendere la 1.2 Beta.
Si può farlo solo dal prompt dei comandi:
cd C:\Windows\assembly
dir
Il GAC ha una specifica struttura di directory, e non si deve andare spostamento o l'eliminazione cose in là con il prompt dei comandi - preferisce utilizzare Windows Explorer (gui) o gacutil (cli)
Per elencare le voci nel GAC;
gacutil -l
In PowerShell è possibile analizzare l'output di testo di cui sopra. Non conosco un'interfaccia gestita per ispezionare il GAC.
qualsiasi codice di esempio in PowerShell? – Kiquenet
Ho avuto la stessa domanda. La domanda è diventata più evidente con .Net 4.0 e non è disponibile un plugin per shell di Windows Explorer per visualizzare i contenuti. GacUtil funziona, ma non è abbastanza flessibile e richiede molto da installare. L'opzione PowerShell Community Extensions è limitata nella sua funzionalità e contiene molti altri CmdLet di cui non ho bisogno. Pertanto ho scritto il mio modulo PowerShell per visualizzare e modificare il GAC. Può essere trovato su http://powershellgac.codeplex.com
Questo progetto è stato spostato su GitHub. Ora è possibile trovare su:
https://github.com/LTruijens/powershell-gac
Può anche essere trovato nella Galleria PowerShell:
https://www.powershellgallery.com/packages/Gac/1.0.1
# Show the assemblies in the GAC, including the file version
Get-GacAssembly SomeCompany* | Format-Table -View FileVersion
Se si vuole cercare un assembly specifico nel GAC .
Inoltre, poiché MS ha modificato la struttura GAC, è possibile utilizzare l'opzione -Recurse dalla radice per cercare tutto il GAC.
CD C:\Windows\assembly
ls -Recurse | ?{$_.Name -like "*log4net*"}
Come indicato nel the docs:
A partire con il .NET Framework 4, il percorso predefinito per il global assembly cache è% windir% \ Microsoft.NET \ assembly. Nelle versioni precedenti di .NET Framework, la posizione predefinita è% windir% \ assembly.
È possibile effettuare la ricerca nella sottodirectory appropriata o in entrambe.
kewl. Non lo sapevo. – Cheeso