前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《CLR via C#》Part1之Chapter3 共享程序集和强命名程序集(二)

《CLR via C#》Part1之Chapter3 共享程序集和强命名程序集(二)

作者头像
Isaac Zhang
发布2019-09-11 16:53:39
4930
发布2019-09-11 16:53:39
举报
文章被收录于专栏:奔跑的人生

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

2013-3-3 22-25-05
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
2013-3-4 22-33-25

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

2013-3-4 22-38-41
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.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-03-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档