GAC是内存区域还是硬盘区域?

时间:2010-05-16 14:15:17

标签: c# gac

GAC是内存区域还是硬盘区域(C:\windows\Microsoft.NET\Assembly\...) 我对GAC中的缓存这个词感到困惑吗?

7 个答案:

答案 0 :(得分:8)

GAC是一个文件夹:

C:\的Windows \ Microsoft.NET \组件

存储在该文件夹下的文件夹中的程序集位于GAC中。您可以通过对GAC进行签名,然后使用gacutil添加它们来将程序集添加到GAC。 GAC是托管程序集寻找任何外部引用的位置之一。

答案 1 :(得分:2)

GAC本身位于%systemroot%\Assembly的硬盘上。

显然,二进制文件本身会在运行时加载到内存中。

GAC中的缓存在语义上是指二进制文件的通用存储库。

答案 2 :(得分:2)

cache是一种机制,它可以改善加载数据的响应时间,而客户端不必采取进一步的操作:客户端以“正常”方式请求数据,并且缓存基本上拦截这些请求,并且可能有时会传送数据而无需将请求转发给实际的数据提供者。

这与基于内存的无关。高速缓存存在于各种场景中,在CPU上用于改善RAM的访问时间,在Web浏览器中用于改善Web资源的访问时间 - 在这种情况下,作为磁盘上预编译程序集的文件夹以改进访问DLL(否则会必须编译)。

答案 3 :(得分:1)

GAC实际存储在您的硬盘上。您可以使用以下命令从命令行查看物理文件:

dir %WINDIR%\assembly\GAC_32

答案 4 :(得分:0)

如前所述,GAC是硬盘上的位置(%systemroot%/ assembly)。在此上下文中,术语缓存是指商品的存储,因此这是一个公共位置,其中由.NET应用程序存储和访问强命名的版本化程序集。

答案 5 :(得分:0)

Global Assembly Cache (GAC)位于您的硬盘驱动器上,默认情况下为C:\Windows\Assembly,我在验证后也注意到您可能还有C:\Windows\Microsoft.NET\GAC_[XX]的库,其中[XX]代表32或64位或MSIL(Microsoft Intermediate Language)假设您的系统驱动器是C:。

您可以按照引用的链接了解详情。

答案 6 :(得分:0)

GAC在磁盘上。想象一下,将所有已签名的程序集保存在内存中......