引言

在曾经的项目开发中,在程序集中见到过一个后缀为*.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)——为程序集赋予强名称相关推荐

  1. 关于程序集生成失败 -- 引用的程序集没有强名称的解决办法

    关于程序集生成失败 -- 引用的程序集没有强名称的解决办法 我在PetShop4程序中加入了一个业务外观层,然后在业务逻辑层(PetShop.BLL)引用这个程序集,点"生成",出 ...

  2. [转]程序集之GAC---Global Assembly Cache

    本文转自:http://www.cnblogs.com/jhxk/articles/2564295.html 1.什么是GAC?GAC解决什么问题? GAC全称为: Global Assembly C ...

  3. 关于反射Assembly.Load(程序集).CreateInstance(命名空间.类)

    关于反射Assembly.Load("程序集").CreateInstance("命名空间.类") 而不管在哪一层写这段代码其中的("程序集" ...

  4. 找到的程序集的清单定义与程序集引用不匹配

    我试图在C#Windows窗体应用程序(Visual Studio 2005)中运行一些单元测试,但出现以下错误: System.IO.FileLoadException:无法加载文件或程序集&quo ...

  5. 公共语言运行库中的程序集-04强命名的程序集

    具有强命名的程序集 强命名是由程序集的标识加上公钥和数字签名组成的.其中,程序集的标识包括简单文本名称.版本号和区域性信息(如果提供的话).强命名是使用相应的私钥,通过程序集文件(包含程序集清单的文件 ...

  6. 探究.NET的bin引用程序集运行机制看.NET程序集部署原理

    探究.NET的bin引用程序集运行机制 看.NET程序集部署原理 新建一个最简单的网站,并引用使用程序集Nhibernate.dll,页面代码为       运行后输出的结果 .NET 程序集部署程序 ...

  7. 图解.net程序集赋予强名称

    从开始菜单打开VS命令提示: 输入下图命令:生成的文件保存了公钥/私钥对: 利用下面命令可提取出公钥部分: 查看公钥: 新建一个.net窗体程序:在项目属性的下图位置,选中 为程序集签名,并选择刚才生 ...

  8. Autofac程序集注入

    Autofac是一个开源的轻量级的依赖注入容器,可自动选择使用构造函数注入或者属性注入. 浅浅记录Autofac 一.Autofac包引入 二.Startup类中应用 三.程序集注入 框架图 浅浅记录 ...

  9. AssemblyInfo.cs文件详解

    1..Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件.但我们实际上通过另一个形式操作该文件.那就是通过在鼠标右键点击项目 ...

最新文章

  1. delphi xe 文件服务器,DelphiXE7中创建WebService(服务端+客户端)
  2. Hbase常用操作(增删改查)
  3. fiddler弱网测试_移动端质量体系之弱网测试
  4. java读取TXT文件的方法
  5. java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View...错误原因和解决方法
  6. github连接出现Bad file number问题
  7. Vmvare三种网络连接方式:桥接模式、NAT模式和HostOnly模式
  8. bash配置文件的修改
  9. 代码的执行效率(3)--缓存与局部性 摘自赵劼老师的博客
  10. docker-compose部署nacos 集群超过2个容器的问题
  11. Oracle数据库出现“本地计算机上的OracleOraDB11g_homeTNSListener服务启动后停止.....”问题解决方案...
  12. Power BI学习
  13. 通达信交易接口分时做T的指标公式分享
  14. 如何理解面向对象(POO)?
  15. The run destination iPhone is not valid for running the scheme “xx”
  16. 视频融合云服务EasyCVR平台部署在云服务器中的配置关键点
  17. matlab plotroc 画roc曲线
  18. 中国橱柜行业品牌营销策略与竞争态势研究报告2022版
  19. 互联网公司有哪些“逼死人”的制度?
  20. Python:类与结构体

热门文章

  1. 【7-10 PAT】树的遍历(给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。)
  2. 【CodeForces - 892C 】Pride (数学,思维构造,gcd)
  3. oracle的脚本语言是什么意思,Oracle中的sql脚本语言中的循环语句介绍
  4. java 自定义xml_6.1 如何在spring中自定义xml标签
  5. bash mysql count()_【MySQL】性能优化之 count(*) VS count(col)
  6. 两台虚拟服务器如何级联,[教程] 利用open vswitch建立vxlan隧道实现不同主机上的虚拟交换机级联...
  7. c语言可以将负数强制转换成正数吗_C语言笔记(一、概述)
  8. java 反射 类变量_java反射机制取出model类的所有变量,以及value
  9. mysql评论表结构设计_文章评论嵌套显示mysql表结构如何设计(形式如网易新闻评论)...
  10. 会话跟踪技术之Cookie