• CLR via c#共享程序集和强命名程序集


    CLR支持两种程序集:弱命名程序集和强命名程序集

    两种程序集结构上完全相同,唯一的区别在于强命名程序集用发布者的公钥/私钥对进行了签名,它唯一性的标识了程序集的发布者。

    私有部署的程序集:

    是指部署到应用程序基目录或者子目录的程序集。弱命名程序集只能以私有的方式部署

    公有部署的程序集:

    是指部署到一些已知位置的程序集,因为CLR在查找程序集的时候,会检查这些已知的位置。

    一个强命名程序集的4个重要的attributes:

    1.一个文件名

    2.一个版本号

    3.一个语言文化标识

    4.一个公钥

    创建强命名程序集的工具SN.exe

    运行命令:SN -k MyCompany.snk

    全局程序集缓存(GAC):

    如果一个程序集要由多个应用程序访问,必须把它放到一个已知目录中,而且CLR在检测到对该程序集的引用时,必须知道自动检查该目录

    这个已知目录就叫做全局程序集缓存。通常位于:c:\windows\Assembly

    运行时如何解析类型引用:

    public sealed class Program

    {

      public static void Main()

      {

        System.Comsole.WriteLine("Hi");

      }

    }

    1.CLR首先会读取程序集的CLR头,查找标识了应用程序入口方法(main)的MethodDefToken

    2.CLR检索MethodDef元数据表,找到该方法的IL代码在文件中的偏移量

    3.把IL文件编译成本地文件

  • 相关阅读:
    Linear Regression Example
    三角函数画图(Python)
    机器学习算法笔记系列之深入理解主成分分析PCA-原理篇
    Boosted Trees 介绍
    Jacobian矩阵和Hessian矩阵
    使用插件pagehelper在mybatis中实现分页查询
    git常用操作
    Python远程视频监控
    FPGA选型
    英文Datasheet没那么难读
  • 原文地址:https://www.cnblogs.com/chenxiaoran/p/2080254.html
Copyright © 2020-2023  润新知