全局程序集缓存(Global Assembly Cache,简称GAC)是 计算机范围内的代码缓存,用于存储由多个应用程序共享的程序集。当主程序需要加载程序集时,系统会优先在全局程序集缓存中查找所需的程序集。
共享程序集:
全局程序集缓存中的程序集可以被多台计算机上的多个应用程序共享。这有助于减少重复安装相同程序集的需求,从而节省磁盘空间和系统资源。
强名称程序集:
为了在全局程序集缓存中存储程序集,该程序集必须具有强名称。强名称包括程序集的完整名称、版本号、公钥、文化信息和数字签名。
安装原则:
通常,程序集依赖项应保持专用,并且程序集应放置在应用程序目录中,除非有明确的需求需要将其共享。在某些情况下,例如为了使COM互操作或非托管代码可以访问程序集,可能会将程序集安装到全局程序集缓存中。
管理工具:
可以使用工具如`gacutil`来查看和操作全局程序集缓存。例如,可以使用`gacutil -i`命令将程序集安装到缓存中,或使用`gacutil -u`命令将其卸载。
需要注意的是,全局程序集缓存主要用于.NET Framework,并且不适用于.NET的较新版本实现,包括.NET 6及更高版本。在这些新版本中,可能需要考虑其他机制来实现程序集的共享和缓存。