我的GAC在哪里?

use*_*117 14 .net gac .net-4.0

我想更熟悉.Net Global Assembly Cache.各种来源在线说它可以在资源管理器中找到C:\ WINNT\Assembly.但是我的Windows XP机器上似乎没有C:下的WINNT文件夹.我选中了"显示隐藏文件和文件夹",并选中了"隐藏受保护的操作系统文件".

使用如何检测安装的.NET Framework版本和Service Pack中描述的方法 特别是在http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=318785中,我看到我安装了.Net 4.0.

我怎样才能可靠地找到它,为什么它会在任何地方,但它应该在哪里?

Lyn*_*ing 31

作为免责声明,我首先要说的是,您永远不应该直接编辑GAC的内容.

关于信息......

您的问题中有两种不同的GAC,即2.0 GAC和4.0 GAC.在谈到这些时,它们并不是指.NET框架的版本,而是指使用CLR的版本.恰好在2.0中,CLR为2,在4.0中,CLR为4.作为参考框架,.Net 3.5的CLR保持在2,因此.net 2.0和.net 3.5的GAC是一样的.

但它在哪里?

2.0 GAC是在浏览器中的%WINDIR%\ Assembly.对于大多数较新的Windows操作系统,%WINDIR%默认为C:\ Windows.在引擎盖下,这实际上是一个隐藏GAC实际位置的shell扩展,但为了您的目的,您可以打开资源管理器到C:\ Windows\Assembly来查看2.0 GAC的内容.shell扩展还增加了将程序集拖放到C:\ Windows\Assembly中的好处,以便将它们添加到GAC(必须在Win7及更高版本中禁用UAC).

4.0 GAC位于C:\ Windows\Microsoft.NET\assembly.您会发现各种类型的程序集分为该文件夹下的32位,64位或MSIL子目录.CLR4的gac没有shell扩展,因此您正在查看程序集所在的磁盘上的实际位置.

有些偏离主题......

我总是以编程方式检测安装.Net框架版本的方式是查看HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP...子文件夹指示已安装的版本.