zoukankan      html  css  js  c++  java
  • 《CLR via C#》Part1之Chapter3 共享程序集和强命名程序集(二)

    CLR支持两种程序集:弱命名程序集(weakly named assembly)和强命名程序集(strongly named assembly).

    2013-3-3 22-25-05

    由于弱类型程序集总是私有部署的,所以当CLR在应用程序的基目录或者子目录中搜索程序集的文件时,只会使用程序集的名称(添加一个.dll或者.exe)。

    强类型程序集则是由一个文件名、一个版本号和一个语言文化(culture),除此之外,强命名程序集还使用发布者的私钥进行了签名。

    创建强类型步骤:

      1. 使用Strong Name实用程序(SN.exe)来获取一个密钥。(这个程序与.NET Framework SDK和MS VS配套提供的。)Eg. SN –k MyCompany.snk,SN.exe的所有命令行都区分大小写;
      2. 由于公钥数字非常大,难以使用,人们设计了公钥标记(public key token),公钥标记是公钥的64位哈希值。

    VS2012中创建公钥/私钥文件,可显示项目属性,进入“签名”选项卡,勾选为“程序集签名”,选择新建,如下图

    2013-3-4 22-33-25

    下面这幅图描述了CLR“对一个文件进行签名”

    2013-3-4 22-38-41

    全局程序集缓存

    如果一个 程序集要由多个应用程序访问,必须把它放在一个已知的目录中,而且CLR在检测到对该程序集的一个引用时,必须知道自动检查该目录,这个已知的位置称为全局程序集缓存(Global Assembly Cathe,GAC),对于.NetFramework 3.5和以前的版本,GAC通常放在以下目录,C:Windows\Assembly,而对于.Net4.0,GAC位于C:Windows\Microsoft.NET\Assembly.

  • 相关阅读:
    strong,weak, retain, assign的区别@property的参数
    iOS 声明属性关键字讲解
    iOS中ARC和非ARC混用
    存储过程修改产品描述页图片alt描述信息
    mysql字符串函数(转载)
    读者证
    存储过程
    复制档案或目录 linux cp命令详解
    linux shell获取时间
    linux 备份日志文件
  • 原文地址:https://www.cnblogs.com/zhangpan1244/p/2943552.html
Copyright © 2011-2022 走看看