码迷,mamicode.com
首页 > 其他好文 > 详细

引用三方Dll时,产生“does not have a strong name”错误

时间:2015-08-26 20:15:41      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:签名 dll

【问题描述】

1.在项目中,右键添加三方.dll文件时,无法生成,会出现如下错误。

技术分享

2.这是因为.dll文件没有使用签名文件进行签名,存在着一切安全隐患,固编辑器组织生成这一行为。

对于签名详情见博文:http://www.windowsdevcenter.com/pub/a/dotnet/2003/04/28/strongnaming.html

如图所示,dll的公钥值为null。

技术分享

【解决方案】

1.我们需要一个签名文件.snk;

使用签名工具sn.exe进行签名,sn.exe工具在“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin”目录下,在cmd中使用"set PATH=%PATH%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin"命令添加环境变量,这样就可以在命令行中使用;

生成一个你的密钥:sn -k mykey.snk

2.把dll文件反编译成il文件;

ildasm /all /out=MLitJson.il MLitJson.dll 

3.使用mykey.snk密钥对il文件进行签名,并输出为dll;

 ilasm /dll /key=mykey.snk MLitJson.il

如上操作都在命令行下进行。

【结果】

最后我们可以看到MLitJson已经被签名了,这样我们就可以任意引用它了。

技术分享


参考:http://www.codeproject.com/Tips/341645/Referenced-assembly-does-not-have-a-strong-name

版权声明:本文为博主原创文章,未经博主允许不得转载。

引用三方Dll时,产生“does not have a strong name”错误

标签:签名 dll

原文地址:http://blog.csdn.net/sakyaer/article/details/48007865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!