zoukankan      html  css  js  c++  java
  • GAC 学习

    每一个被安装了CLR 的计算机都有一个全局程序集缓存,简写GAC, GAC 是一个面向机器的用来保持程序集的,用于在一台机器的几个应用程序之间共享程序集的机制。在Dot Net 框架中,GAC 是注册程序集的中心地带。它最初被叫做联合缓存并且被Fusion.dll实现。

    我们可以用各种方式部署程序集在GAC中。一个与GAC一起工作的安装器可以被使用。这是安装程序集最好的方式。第二种方式是使用开发工具叫做GAC tool ,在dot net framework SDK 中可以被找到。你也可以拖拽程序集到GAC通过使用Windows Explorer.

     

    使用GAC 的好处

    强名签名验证: 所有的共享程序集必须要有强名签名,当程序集被安装到GAC时,这些签名被验证。

    性能 当解析一个程序集时CLR会先浏览GAC,如果没有发现请求的程序集,那么它就浏览应用程序目录,很明显,会有一个性能的获得通过搜索第一个位置。

                部署 bug fixes :管理员可以部署bug fixes 被所有的程序公用。通过部署到GAC 开始合适的版本策略在机器的配置文件中,管理员能够确信所有的程序都能使用这个fix

     

    尽管有这些好处,使用GAC 有一个明显的弱点,它增加了安装和卸载程序集的复杂性。

     

    浏览实际的GAC目录

     

    当你在explorer 中浏览GAC目录时,看起来好像所有的程序集文件都直接放在GAC 目录下

    但是,实际不是这样的。如果你进入GAC目录 通过一个 Dos 窗口,你就会卡脑GAC包含子目录和每一个程序集都有它自己独立的子目录。之所以不同是因为你实际是通过Fusion shell来读取得。

     

    GAC 指定的空间

    导向GAC目录 c:\winnt\Assembly in explore. 在工具菜单中选择缓存属性,你可以看到内存使用限制

     

    迁移GAC

     

    默认的GAC位置是 <%windir% >"assembly 文件夹。这个位置不可配置在 .net framework 安装的时候。一旦.net framework 完全安装后,可能会迁移GAC到一个不同的位置。设置the registry key CacheLocation (REG_SZ) HKLM"Software"Microsoft"Fusion,这个路径是GAC需要被定为的位置。.net 会在 CacheLocation 下创建一个程序集子文件夹。

     

  • 相关阅读:
    【LeetCode刷题系列
    【redis 学习系列】API的理解与使用(二)
    【C++】undered_map的用法总结(1)
    【LeetCode刷题系列
    【LeetCode刷题系列
    【LeetCode刷题系列
    【redis 学习系列】API的理解与使用(一)
    【redis 学习系列】安装-配置-卸载Redis
    【centos】/usr/bin与/usr/local/bin的区别
    ROC AUC
  • 原文地址:https://www.cnblogs.com/flyinthesky/p/1260141.html
Copyright © 2011-2022 走看看