03.共享程序集和强命名程序集

进行私有部署时,程序集放在应用程序的基目录(或者它的一个子目录)中的,这个应用程序专用的。以私有方式部署程序集,可以对程序集的命名、版本和行为进行全面的控制

CLR支持两种程序集,一种是弱命名程序集,一种是强命名程序集

强命名程序集使用发布者的公钥/私钥对进行签名,它唯一性地标识了程序集的发布者

弱命名程序集只能进行私有部署,"全局部署的程序集"是部署到一些已知的位置的程序集

强命名程序集

具有4个重要的attributes,它们共同对程序集进行唯一性标识:一个文件名、一个语言文化,一个版本号以及一个公钥。

创建强命名程序集

1.使用Strong Name程序SN.exe来获取一个密钥,运行如下

SN.exe -k company.snk

2.再次执行SN.exe程序,使用-p开关,创建一个包含公钥的文件

SN.exe -p company.snk company.Public

3.使用-tp开关,指定只包含公钥的文件

SN.exe -tp company.Public

全局程序集缓存GAC

如果一个程序集由多个应用程序使用,必须放在一个已知的目录,CLR在检测到对这个程序引用时,必须自动检查该目录,这个已知的目录就是全局程序集缓存

时间: 2024-10-07 05:06:51

03.共享程序集和强命名程序集的相关文章

第三章 共享程序集和强命名程序集

1. 概述 本章的重点是如何创建可由多个应用程序访问的程序集. 2. 名词解释 ① 公钥标记:从公钥派生的一个小的哈希值. 3. 主要内容 3.1 两种程序集,两种部署   CLR支持两种程序集:弱命名程序集 和 强命名程序集. 一个程序集可以采取两种方式来部署:私有 或 全局. 弱命名程序集只能私有部署,强命名程序集两种部署皆可. 3.2 为程序集分配强名称 强命名程序集具有四个重要组成部分: ① 一个文件名 ② 一个版本号 ③ 一个语言文化标识 ④ 一个公钥(一般用 公钥标记). 用SN.e

学习 第三章CLR共享程序集和强命名程序集

CLR 支持两种程序集:弱命名程序集(weakly named assembly)和强命名程序集(strongly named assembly) 程序集可采用两种方式部署:私有和全局 弱命名程序集只能以私有方式部署 强命名程序集部署即可私有又全局. 强命名程序集具有4个重要特性:文件名(不计扩展名),版本号,语言文化,公钥 例如:"MyTypes,Vesion=1.0.8123.0,Culture=neutral,PublicKeyToken=b77a5c561934e89" 注意:

共享程序集和强命名程序集(下)

1.1   强命名程序集能防篡改 1.2   延迟签名. 1.3   私有部署强命名程序集 1.4   "运行时"如何解析类型引用 1.5   高级管理控制(配置) 原文地址:https://www.cnblogs.com/lzcgis/p/10251725.html

共享程序集和强命名程序集(上)

1.1   两种程序集,两种部署(待更新...) 两种程序集:弱命名程序集,强命名程序集.两者结构完全相同.区别:强命名程序集使用发布者的公钥/私钥进行签名. 部署:私有或者全局. 1.2   为程序集分配强名称 1.3   全局程序集缓存 1.4   在生成的程序集中引用强命名程序集 原文地址:https://www.cnblogs.com/lzcgis/p/10251718.html

共享程序集和强命名程序集(4):“运行时”如何解析类型引用

GAC(Global Assembly Cache) 全局程序集缓存 安装公共语言运行库的每台计算机都有一个称为全局程序集缓存的机器级代码缓存.全局程序集缓存存储专门指定由计算机上的多个应用程序共享的程序集. "运行时"如何解析类型引用 首先是一组毫无营养但是有用的代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Reflection; 5 using

强命名程序集,签名,延迟签名

强命名程序集 如果一个程序集有一个唯一的标记,那么这个程序集就可以叫做强命名程序集.在.NET框架中是通过公钥/私钥加密来产生这个唯一标记的.一个强命名程序集包含四个唯一标志程序集的特性:文件名(没有扩展名),版本号,语言文化信息(如果有的话),公有秘钥. 这些信息存储在程序集的清单(manifest)中.清单包含了程序集的元数据,并嵌入在程序集的某个文件中.下面的字符串标识了二个不同的程序集文件: “MyType, Version=1.0.1.0,Culture=neutral, Public

如何创建强命名程序集, 如何查看强命名程序集的PublicKeyToken

1. 在Visual Studio中的class library工程上点右键, 选择properties. 2.  选择左边的Signing选项卡. 3. 勾选Sign the assembly复选框. 在下拉列表中选择<New...>. 4. 在弹出的对话框中给snk文件起一个名字. 按OK. 5. 程序集强命名完成. 如何查看强命名程序集的public key token ========================= 有时候你需要在web.config文件中或者其他地方引用自己写的强

CLR 关于强命名程序集 .

如何创建强命名程序集(Strong Name Assembly)     创建一个强命名程序集首先需要获得一个用强命名实用工具   (Strong Name Utility,即SN.exe,.NET SDK自带)产生的密钥.   下面简要介绍一下SN.exe的一些用法. 要产生一个公钥/私钥对:     a)SN –k MyCompany.Keys   该命名告诉SN.exe创建一个名为MyCompany.keys的文件.MyCompany.keys文件将包含以对以二进制格式存储的公有密钥和私有

使用强命名程序集防范篡改

CLR支持两种程序集:强命名程序集.弱命名程序集,两者的区别在于,强命名程序集是被发布者使用了自己的公钥/私钥对进行了程序集的签名,能唯一性标识程序集的发布者的程序集,并且可以使用密钥对程序集进行唯一性标识.保护和版本控制,这里所提到的保护就是我们需要一起讨论的程序集防篡改. 首先我们一起来看个例子,这样能简单明了地说明使用强命名程序集的必要性. 我们建立一个WinForm程序Nick.WinFormApp,添加一个登录窗体,并且在此项目内引用名为Nick.AuthProvider的程序集,用于