标签:签名 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