使用PowerShell查看全局程序集缓存(GAC)的内容

时间:2009-05-19 13:44:36

标签: powershell gac

有没有办法使用PowerShell查看GAC的内容?

6 个答案:

答案 0 :(得分:17)

另一个选择是PowerShell Community Extensions安装GAC提供商,因此您可以这样做:

dir gac:

如果您使用的是PowerShell V2,请务必获取1.2 Beta。

答案 1 :(得分:6)

列出GAC中的条目;

gacutil -l

在powershell中,您可以解析上面的文本输出。 我不知道检查GAC的托管界面。

答案 2 :(得分:5)

the docs中所述:

  

从.NET Framework 4开始,全局程序集缓存的默认位置是%windir%\ Microsoft.NET \ assembly。在早期版本的.NET Framework中,默认位置为%windir%\ assembly。

您可能希望在相应的子目录中搜索,或者甚至在两者中搜索。

答案 3 :(得分:3)

我有同样的问题。使用.Net 4.0时问题变得更加突出,并且没有可用于查看内容的Windows资源管理器外壳插件。 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

答案 4 :(得分:1)

您只需从命令提示符处执行此操作:

cd C:\Windows\assembly
dir

GAC有一个特定的目录结构,你不应该使用命令提示符移动或删除那里的东西 - 而是使用windows explorer(gui)或gacutil(cli)

答案 5 :(得分:0)

如果要在GAC中搜索特定程序集。

另请注意,由于MS已更改GAC结构,您可以使用root用户的-Recurse选项搜索所有GAC。

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