全局程序集缓存(GAC)

作者: Peter Berry
创建日期: 19 八月 2021
更新日期: 1 七月 2024
Anonim
02 MVC项目会自动导入MVC程序集,因为默认 Net环境(GAC)中没有这个程序集
视频: 02 MVC项目会自动导入MVC程序集,因为默认 Net环境(GAC)中没有这个程序集

内容

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

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


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

Microsoft Azure和Microsoft Cloud简介在本指南中,您将了解什么是云计算,以及Microsoft Azure如何帮助您从云迁移和运行业务。

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版本与用于编译应用程序的版本必须相同。另外,强名称不能应用于驻留在GAC文件夹中的程序集所依赖的程序集(如第三方代码)。