强名称程序集(strong name assembly)——为程序集赋予强名称
引言:
在曾经的项目开发中,在程序集中见到过一个后缀为*.snk的文件。当时看这个文件的图标。感觉可能是企业内部保护版权啥的一种方式。
一,强程序集攻克了哪些问题?
1,唯一标识一个程序集
2,放置程序集被仿冒和被篡改。
3,能够部署到全局程序集缓存(GAC:GlobalAssembly Cache)中;在将强名称程序集不熟在GAC其中以后,强名称程序集也能够称为共享程序集(shared assembly)
二,强名称与GAC
强名称:
定义了一个规则,不单单以文件名称来区分程序集,这个规则就是强名称。
GAC:
定义一个特殊的目录,这个目录能够识别这样的规则。而且同意文件名称同样的文件存在,这个特殊的目录就是GAC。
三,为程序集赋予强名称
打开VS 开发者命令提示工具:
首先,我们来创建公钥私钥文件。使用 sn -k命令:
然后我们会发如今此目录下创建LHC.snk成功:
须要注意的地方:
1。每次调用sn时候,创建的私钥/密钥对文件都不同样,不仅自己的计算机每次生成的不同,其它全部计算机生成的也不同样。
2。关于这个文件的命名。假设是个人。能够以自己的名字命名。假设是团队。。组织火公司,能够以组织名称来命名。
3,在大多数情况下,个人和组织仅仅须要一个snk文件就能够了。以后创建强名称的时候,都使用这个snk文件。因为会使用snk文件的私钥对强名称程序集进行签名,因此这个文件必须严密保护。
上面创建的LHC.snk里面既包括公钥。也包括私钥。
公钥能够使用sn.exe查看。可是私钥无法查看。
假设须要查看公钥的话。能够使用 sn -p命令:
之后使用sn -tp命令查看*.pk文件:
创建好这个公钥私钥文件之后,我们就能够使用它来标识程序集的唯一性了。
在须要设置的程序集中,为此程序集设置签名属性:
保存之后再观察此程序集,会发现多出来一个文件:
转载于:https://www.cnblogs.com/yfceshi/p/6938230.html
强名称程序集(strong name assembly)——为程序集赋予强名称相关推荐
- 关于程序集生成失败 -- 引用的程序集没有强名称的解决办法
关于程序集生成失败 -- 引用的程序集没有强名称的解决办法 我在PetShop4程序中加入了一个业务外观层,然后在业务逻辑层(PetShop.BLL)引用这个程序集,点"生成",出 ...
- [转]程序集之GAC---Global Assembly Cache
本文转自:http://www.cnblogs.com/jhxk/articles/2564295.html 1.什么是GAC?GAC解决什么问题? GAC全称为: Global Assembly C ...
- 关于反射Assembly.Load(程序集).CreateInstance(命名空间.类)
关于反射Assembly.Load("程序集").CreateInstance("命名空间.类") 而不管在哪一层写这段代码其中的("程序集" ...
- 找到的程序集的清单定义与程序集引用不匹配
我试图在C#Windows窗体应用程序(Visual Studio 2005)中运行一些单元测试,但出现以下错误: System.IO.FileLoadException:无法加载文件或程序集&quo ...
- 公共语言运行库中的程序集-04强命名的程序集
具有强命名的程序集 强命名是由程序集的标识加上公钥和数字签名组成的.其中,程序集的标识包括简单文本名称.版本号和区域性信息(如果提供的话).强命名是使用相应的私钥,通过程序集文件(包含程序集清单的文件 ...
- 探究.NET的bin引用程序集运行机制看.NET程序集部署原理
探究.NET的bin引用程序集运行机制 看.NET程序集部署原理 新建一个最简单的网站,并引用使用程序集Nhibernate.dll,页面代码为 运行后输出的结果 .NET 程序集部署程序 ...
- 图解.net程序集赋予强名称
从开始菜单打开VS命令提示: 输入下图命令:生成的文件保存了公钥/私钥对: 利用下面命令可提取出公钥部分: 查看公钥: 新建一个.net窗体程序:在项目属性的下图位置,选中 为程序集签名,并选择刚才生 ...
- Autofac程序集注入
Autofac是一个开源的轻量级的依赖注入容器,可自动选择使用构造函数注入或者属性注入. 浅浅记录Autofac 一.Autofac包引入 二.Startup类中应用 三.程序集注入 框架图 浅浅记录 ...
- AssemblyInfo.cs文件详解
1..Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件.但我们实际上通过另一个形式操作该文件.那就是通过在鼠标右键点击项目 ...
最新文章
- delphi xe 文件服务器,DelphiXE7中创建WebService(服务端+客户端)
- Hbase常用操作(增删改查)
- fiddler弱网测试_移动端质量体系之弱网测试
- java读取TXT文件的方法
- java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View...错误原因和解决方法
- github连接出现Bad file number问题
- Vmvare三种网络连接方式:桥接模式、NAT模式和HostOnly模式
- bash配置文件的修改
- 代码的执行效率(3)--缓存与局部性 摘自赵劼老师的博客
- docker-compose部署nacos 集群超过2个容器的问题
- Oracle数据库出现“本地计算机上的OracleOraDB11g_homeTNSListener服务启动后停止.....”问题解决方案...
- Power BI学习
- 通达信交易接口分时做T的指标公式分享
- 如何理解面向对象(POO)?
- The run destination iPhone is not valid for running the scheme “xx”
- 视频融合云服务EasyCVR平台部署在云服务器中的配置关键点
- matlab plotroc 画roc曲线
- 中国橱柜行业品牌营销策略与竞争态势研究报告2022版
- 互联网公司有哪些“逼死人”的制度?
- Python:类与结构体
热门文章
- 【7-10 PAT】树的遍历(给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。)
- 【CodeForces - 892C 】Pride (数学,思维构造,gcd)
- oracle的脚本语言是什么意思,Oracle中的sql脚本语言中的循环语句介绍
- java 自定义xml_6.1 如何在spring中自定义xml标签
- bash mysql count()_【MySQL】性能优化之 count(*) VS count(col)
- 两台虚拟服务器如何级联,[教程] 利用open vswitch建立vxlan隧道实现不同主机上的虚拟交换机级联...
- c语言可以将负数强制转换成正数吗_C语言笔记(一、概述)
- java 反射 类变量_java反射机制取出model类的所有变量,以及value
- mysql评论表结构设计_文章评论嵌套显示mysql表结构如何设计(形式如网易新闻评论)...
- 会话跟踪技术之Cookie