GAC的位置在哪里?

问题描述 投票:16回答:2

我想更加熟悉.Net全局程序集缓存。各种在线资源都说可以在资源管理器的C:\WINNT\Assembly中找到它。但是,我的Windows XP计算机上WINNT下似乎没有C:文件夹。我已选中“显示隐藏的文件和文件夹”,并且未选中“隐藏受保护的操作系统文件”。

使用How do I detect what .NET Framework versions and service packs are installed?中描述的方法,尤其是http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=318785中描述的方法,我发现已安装.Net 4.0。

我如何可靠地找到它,为什么它会在应该存在的地方之外的任何地方?

.net .net-4.0 gac
2个回答
32
投票

作为免责声明,我首先要说您永远不要直接编辑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的实际位置,但是出于您的目的,您将浏览器打开到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的外壳扩展,因此您正在查看程序集所在磁盘的实际位置。

有点偏离主题...

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


1
投票

在Windows XP中,它的c:\ windows \及其一个隐藏的文件夹,可以通过在GAC所在的位置手动键入目录来找到它(WINNT是.NT 4.0服务器或工作站,或Windows Server 2000或Windows 2000),如果升级到Windows XP或Windows Server 2003 WINNT,我相信只有在那种情况下才能保持完整,这就是应该使用%windir%global系统变量

Im在Windows 8.1 64位上,并且gac仍在C:\ Windows \ assembly中

但是.net在c:\ windows \ Microsoft.NET \中,是CLR和运行时所在的位置

奇怪的是,我似乎不同意c:\ windows \ assembly是“旧gac”]

这是我的剂量结果

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>cd..

C:\Windows>cd assembly

C:\Windows\assembly>dir
Volume in drive C is OS
Volume Serial Number is DE26-14AA

Directory of C:\Windows\assembly

11/01/2013  01:15 PM    <DIR>          GAC
11/14/2013  01:10 PM    <DIR>          GAC_32
11/14/2013  01:10 PM    <DIR>          GAC_64
11/14/2013  01:27 PM    <DIR>          GAC_MSIL
11/13/2013  05:36 PM    <DIR>          NativeImages_v2.0.50727_32
11/10/2013  03:22 AM    <DIR>          NativeImages_v2.0.50727_64
11/14/2013  01:33 PM    <DIR>          NativeImages_v4.0.30319_32
11/13/2013  05:36 PM    <DIR>          NativeImages_v4.0.30319_64
11/14/2013  01:33 PM    <DIR>          temp
11/14/2013  01:32 PM    <DIR>          tmp
           0 File(s)              0 bytes
          10 Dir(s)  27,701,415,936 bytes free

C:\Windows\assembly>

c:\ windows \ microsoft.net \ assembly我不认为这是您的Active GAC,我认为这是Visual Studio在为特定版本x64或32等进行编译时查找的位置,其他c:\ windows \组装是计算机的当前状态。但我不是专家,只是我所看到的

© www.soinside.com 2019 - 2024. All rights reserved.