如何在GAC中查看文件夹和文件?


109

我想查看GAC中的文件夹和子文件夹。还想了解有关从GAC添加和删​​除的信息。

要安装,我们通过打开Visual Studio command prompt以下命令在命令提示符下编写以下行 :

gacutil /i [assembly path]

但是要卸载,我们只需要:-

gacutil /u [assembly name]

为什么?


如果转到Windows目录中的程序集文件夹之一,然后在(文件浏览器的)搜索栏中键入您要查找的dll名称,它们将开始显示。
JakeJ

Answers:


135

安装:

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:


4
请注意,对于.NET 4.0,GAC位置现在为:%windir%\ Microsoft.NET \ assembly \
Alex Nolasco 2014年

57

我迟到了一天,缺钱一美元。如果要在Windows资源管理器中查看GAC的文件夹结构,可以使用注册表进行操作

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

对于临时视图,可以将驱动器替换为文件夹路径,这将剥夺特殊目录属性。

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

至于为什么要执行这样的操作,我使用了这个技巧来比较不同机器之间的GAC DLL,以确保它们确实相同。


您可以使用Powershell自动编辑注册表:
Textcape

新项“ HKLM:\ Software \ Microsoft \ Fusion” -Force | New-ItemProperty-名称“ DisableCacheViewer” -PropertyType DWord-值1-强制| 外空
Textcape

40

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

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


谢谢-它使我可以使用Windows资源管理器,该资源从.NET 4开始就被标记为过时
Dave Friedel

8

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

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

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


我想将其视为普通文件夹。
罗希特·维平·马修斯

@CodingMastero这不是普通的文件夹!
克劳斯·比斯科夫·皮德森

不能,我们使用一些技巧将其视为正常操作吗?
罗希特·维平·马修斯

@CodingMastero不,你不能。您可以通过上述命令提示符查看它。
克劳斯·拜斯科夫·皮德森

1
是。抱歉,我在这里可能不清楚。您不能使用C:\Windows\assembly浏览.NET 4.0 GAC。当然,您仍然可以在.NET 2/3中使用它(如果也已安装)。没有可比的Shell扩展(AFAIK)以相同的方式用于新C:\Windows\Microsoft.NET\assembly目录。
Christian.K

5

您可以使用以下程序作为程序集安装:

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

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

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

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


除了gacutil.exe我知道的唯一可用的其他工具是fusion.dll。
Scott Solmer '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.