【发布时间】:2009-05-19 13:44:36
【问题描述】:
有没有办法使用 PowerShell 查看 GAC 的内容?
【问题讨论】:
标签: powershell gac
有没有办法使用 PowerShell 查看 GAC 的内容?
【问题讨论】:
标签: powershell gac
另一种选择是PowerShell Community Extensions 安装 GAC 提供程序,因此您可以这样做:
dir gac:
如果您使用的是 PowerShell V2,请务必获取 1.2 Beta。
【讨论】:
如the docs中所述:
从 .NET Framework 4 开始,全局程序集缓存的默认位置是 %windir%\Microsoft.NET\assembly。在早期版本的 .NET Framework 中,默认位置是 %windir%\assembly。
您可能希望在适当的子目录中搜索,甚至在这两个子目录中搜索。
【讨论】:
列出 GAC 中的条目;
gacutil -l
在 powershell 中,您可以解析上述文本输出。 我不知道检查 GAC 的托管接口。
【讨论】:
我也有同样的问题。这个问题在 .Net 4.0 中变得更加突出,并且没有可用于查看内容的 Windows Explorer shell 插件。 GacUtil 可以工作,但不够灵活,需要大量安装。 PowerShell 社区扩展选项的功能受到限制,并且包含许多我不需要的其他 CmdLet。因此,我编写了自己的 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
【讨论】:
您可以在命令提示符下执行此操作:
cd C:\Windows\assembly
dir
GAC 具有特定的目录结构,您不应使用命令提示符移动或删除其中的内容 - 而应使用 windows explorer (gui) 或 gacutil (cli)
【讨论】:
如果您想在 GAC 中搜索特定程序集。
另外请注意,由于 MS 已更改 GAC 结构,您可以使用 -Recurse 选项从根目录搜索所有 GAC。
CD C:\Windows\assembly
ls -Recurse | ?{$_.Name -like "*log4net*"}
【讨论】: