17

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

4

6 回答 6

17

另一种选择是PowerShell 社区扩展安装 GAC 提供程序,因此您可以这样做:

dir gac:

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

于 2009-05-19T16:42:34.337 回答
7

文档中所述

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

您可能希望在适当的子目录中搜索,甚至在它们两者中搜索。

于 2016-03-14T11:25:27.437 回答
6

列出 GAC 中的条目;

gacutil -l

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

于 2009-05-19T14:32:01.907 回答
4

我有同样的问题。这个问题在 .Net 4.0 中变得更加突出,并且没有可用于查看内容的 Windows Explorer shell 插件。GacUtil 可以工作,但不够灵活,需要大量安装。PowerShell Community Extensions 选项的功能受到限制,并且包含我不需要的许多其他 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
于 2013-03-03T22:04:32.147 回答
1

您可以仅从命令提示符处执行此操作:

cd C:\Windows\assembly
dir

GAC 具有特定的目录结构,您不应使用命令提示符移动或删除其中的内容 - 而应使用 windows explorer (gui) 或 gacutil (cli)

于 2009-05-19T13:46:51.437 回答
1

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

另请注意,由于 MS 已更改 GAC 结构,您可以从根目录使用 -Recurse 选项来搜索所有 GAC。

CD C:\Windows\assembly 
ls -Recurse | ?{$_.Name -like "*log4net*"}
于 2015-11-05T14:06:19.680 回答