【问题标题】:How to view the Folder and Files in GAC?如何查看 GAC 中的文件夹和文件?
【发布时间】:2012-02-29 11:26:28
【问题描述】:

我想查看GAC 中的文件夹和子文件夹。还想了解在GAC 中添加和删除。

要安装,我们在命令提示符下打开Visual Studio command prompt:-

gacutil /i [assembly path]

但要卸载我们只需要:-

gacutil /u [assembly name]

为什么?

【问题讨论】:

  • 如果您转到 Windows 目录中的某个程序集文件夹,然后在(文件资源管理器的)搜索栏中输入您要查找的 dll 名称,它们应该会开始显示。跨度>

标签: .net .net-assembly gac


【解决方案1】:

安装:

gacutil -i "path_to_the_assembly"

查看:

在 Windows 资源管理器文件夹中打开

  • .NET 1.0 - NET 3.5:c:\windows\assembly (%systemroot%\assembly)
  • .NET 4.x:%windir%\Microsoft.NET\assembly

gacutil –l

当您要安装程序集时,您必须指定gacutil 可以找到它的位置,因此您还必须提供完整路径。但是当一个程序集已经在 GAC 中时 - gacutil 知道一个文件夹路径,所以它只需要一个程序集名称。

MSDN:

【讨论】:

  • 请注意,对于 .NET 4.0,GAC 位置现在是:%windir%\Microsoft.NET\assembly\
【解决方案2】:

我迟到了一天,而且还差一美元。如果你想在 Windows 资源管理器中查看 GAC 的文件夹结构,可以通过using the registry 进行:

  1. 启动注册表。
  2. 导航到 HKLM\Software\Microsoft\Fusion
  3. 添加一个名为 DisableCacheViewer 的 DWORD 并将值设置为 1。

对于临时视图,您可以将驱动器替换为文件夹路径,这样会去掉特殊的目录属性。

  1. 以您的帐户权限级别启动命令提示符。
  2. 类型 SUBST Z:C:\Windows\程序集
    • Z 可以是任何空闲驱动器号。
  3. 打开我的电脑并查看新的替代目录。
  4. 要从命令提示符中删除虚拟驱动器,请键入 SUBST Z: /D

至于你为什么要做这样的事情,我已经使用这个技巧来比较不同机器之间的 GAC 的 DLL,以确保它们确实相同。

【讨论】:

  • 您可以使用 Powershell 自动编辑注册表:
  • 新项目 'HKLM:\Software\Microsoft\Fusion' -Force | New-ItemProperty -Name "DisableCacheViewer" -PropertyType DWord -Value 1 -Force |外空
【解决方案3】:

启动程序“运行”(Windows Vista/7/8:在开始菜单搜索栏中输入)并输入: C:\windows\assembly\GAC_MSIL

然后移动到父文件夹(Windows Vista/7/8:通过在资源管理器栏中单击它)以在普通资源管理器窗口中查看所有 GAC 文件。您现在可以像在其他任何地方一样复制、添加和删除文件。

【讨论】:

  • 谢谢 - 它允许我使用自 .NET 4 以来被标记为过时的 Windows 资源管理器
【解决方案4】:

要查看文件,只需从命令提示符 (cmd) 浏览它们,例如:

c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir

要在 GAC 中添加和删除文件,请使用工具 gacutil

【讨论】:

  • 我想将其视为普通文件夹。
  • @CodingMastero 它是不是普通文件夹!
  • 我们不能使用一些技巧来将其视为正常的吗?
  • 是的。对不起,我可能在这里没有说清楚。您不能使用 C:\Windows\assembly 浏览 .NET 4.0 GAC。当然,您仍然可以将它与 .NET 2/3 一起使用(如果也安装了它)。对于新的C:\Windows\Microsoft.NET\assembly 目录,没有可比的 shell 扩展 (AFAIK) 以相同的方式工作。
  • @KlausByskovPedersen 实际上,您可以将其视为普通文件夹。请参阅我的答案以了解两种方法。
【解决方案5】:

您通过以下方式安装为程序集:

  • 您为应用程序编写的安装程序。
  • 在命令行中使用gacutil.exe 工具和-i 选项。
  • %windir%\Assembly 中删除程序集(仅限 .NET 3.5、CLR 2.0)

您使用以下方式查看 GAC 的内容:

  • 带有-l 选项的gacutil.exe 工具。
  • 对于 .NET 2.0、3.0 和 3.5 (CLR 2.0),使用 Windows 资源管理器浏览到 %windir%\assembly

请注意,.NET 4.0 的(物理)GAC 位置已更改。它不再位于%windir%\Assembly,但现在位于%windir%\Microsoft.NET\assembly。但是,无论如何,您都不应该编写任何依赖于物理位置的代码,因为可用的工具几乎没有必要(除了一些“酷”的本土系统诊断工具)。

【讨论】:

  • 除了gacutil.exe,我知道的唯一可用的其他工具是fusion.dll。
猜你喜欢
  • 1970-01-01
  • 2018-03-09
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
相关资源
最近更新 更多