.net程序集强签名

要想得到强签名的dll有两种情况:

1.给项目添加强命名

  • 在你的项目右键->属性->签名,勾选“为程序集签名”,新建 或 浏览已经新建过的.pfx文件,然后重新build项目,生成的dll就是强命名的dll了。

2.直接给dll强命名

  • 运行vs自带的命令提示工具,执行 sn -k [文件名].snk 命令创建snk文件(其中[文件名]你自己命名,可以包含路径);
  • 使用ildasm **.dll /out:**.il 将dll生成中间语言文件
  • 再使用ilasm **.il /dll /key=[文件名].snk 生成dll,该dll会覆盖之前没用签名的dll。

问题:当添加完签名的项目编译报下列错误

  错误 1 无法导入以下密钥文件:  **.pfx。该密钥文件可能受密码保护。若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称 CSP: VS_KEY_67579BF105843F74。

解决方法:

  运行vs自带的命令提示工具,执行 sn -i [文件名].pfx [VS_KEY],然后会让你输入密码,此时输入创建pfx时设置的密码即可。

  注意:在cmd中输入密码时没有任何显示,输入完直接回车就行了。