有没有办法使用PowerShell查看GAC的内容?
答案 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*"}