Используйте PowerShell для просмотра содержимого глобального сборочного кэша (GAC)

Есть ли способ использовать PowerShell для просмотра содержимого GAC?

Ответы

Ответ 1

Другой вариант заключается в том, что Расширения сообщества PowerShell устанавливает поставщика GAC, поэтому вы можете сделать это:

dir gac:

Если вы находитесь на PowerShell V2, обязательно возьмите бета-версию 1.2.

Ответ 2

Перечислить записи в GAC;

gacutil -l

В powershell вы можете проанализировать вывод текста выше. Я не знаю управляемый интерфейс для проверки GAC.

Ответ 3

Как указано в документах:

Начиная с .NET Framework 4, по умолчанию для глобального кеша сборок установлено значение% windir%\Microsoft.NET\assembly. В более ранних версиях .NET Framework расположение по умолчанию -% windir%\assembly.

Вы можете искать в соответствующем субдире или даже в обоих из них.

Ответ 4

У меня был тот же вопрос. Вопрос стал более заметным с .Net 4.0, и там нет плагина оболочки Windows Explorer для просмотра содержимого. GacUtil работает, но недостаточно гибкий и требует многого для установки. Опция расширения сообщества PowerShell ограничивает ее функциональность и содержит многие другие CmdLets, которые мне не нужны. Поэтому я написал свой собственный модуль PowerShell для просмотра и изменения GAC. Его можно найти на http://powershellgac.codeplex.com

Этот проект переместился в GitHub. Теперь вы можете найти его:

https://github.com/LTruijens/powershell-gac

Его также можно найти в галерее 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

Ответ 5

Вы можете сделать это только из командной строки:

cd C:\Windows\assembly
dir

У GAC есть определенная структура каталогов, и вам не следует перемещать или удалять вещи там, используя командную строку - скорее используйте проводник Windows (gui) или gacutil (cli)

Ответ 6

Если вы хотите найти конкретную сборку в GAC.

Также обратите внимание, что поскольку MS изменила структуру GAC, вы можете использовать опцию -Recurse из корня для поиска всех GAC.

CD C:\Windows\assembly 
ls -Recurse | ?{$_.Name -like "*log4net*"}