在新闻里 什么是全局程序集缓存(gac)? -技术百科的定义

什么是全局程序集缓存(gac)? -技术百科的定义

目录:

Anonim

定义-全局程序集缓存(GAC)是什么意思?

全局程序集缓存(GAC)是Windows目录中的一个文件夹,用于存储.NET程序集,这些程序专门指定供系统上执行的所有应用程序共享。

GAC的概念是.NET体系结构的结果,其设计解决了COM(组件对象模型)中存在的“ DLL地狱”问题。 与COM中不同,GAC中的程序集无需在使用前进行注册。 通过标识其名称,版本,体系结构,文化和公共密钥,可以在全局范围内无冲突地访问每个程序集。

Techopedia解释了全局程序集缓存(GAC)

GAC是机器范围的代码缓存,用于并行执行程序集。 GAC实现了共享库的功能,在此共享库中,不同的应用程序可以重复使用位于公共文件夹中的文件中的代码。 在.NET 4.0中,其默认位置为:%windir%\ Microsoft.NET \ assembly


加载.NET程序集时,GAC还是搜索路径中的第一个。 要在GAC中部署程序集的唯一要求是它应具有强大的名称。 CLR(公共语言运行时)是指基于调用应用程序提及的特定版本的程序集。 GAC的虚拟文件系统有助于获取特定于版本的程序集。


与GAC相关的两个工具是GAC工具(gacutil.exe)和程序集缓存查看器(shfusion.dll)。 GAC工具用于检查程序集是否存在,注册共享程序集,查看和操作GAC的内容等。作为系统文件夹,它需要使用管理员权限。 程序集缓存查看器用于显示与包含在缓存中的程序集关联的详细信息(版本,区域性等)。


GAC提供了代码重用,文件安全性(由于其安装在“ systemroot”目录中,因此只能由具有管理员特权的用户删除),并行执行(允许在同一文件夹中维护程序集的多个版本)的优点)等


使用GAC的缺点之一是,在使用GAC的系统中安装的.NET Framework版本与用于编译应用程序的.NET Framework版本必须相同。 另外,强名称不能应用于驻留在GAC文件夹中的程序集所依赖的程序集(如第三方代码)。

什么是全局程序集缓存(gac)? -技术百科的定义