.net程序集强命名(签名)
程序员文章站
2022-04-10 15:31:38
要想得到强签名的dll有两种情况:1.给项目添加强命名在你的项目右键->属性->签名,勾选“为程序集签名”,新建 或 浏览已经新建过的.pfx文件,然后重新build项目,生成的dll就是强命名的dll了。2.直接给dll强命名运行vs自带的命令提示工具,执行sn -k [文件名].snk 命令创建... ......
要想得到强签名的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中输入密码时没有任何显示,输入完直接回车就行了。
推荐阅读
-
System.Web中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)
-
.Net MVC 提示未能加载文件或程序集
-
找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)
-
.NET Core 3.0 可回收程序集加载上下文的实现
-
System.Web中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)
-
c# 命名空间和程序集
-
在ASP.NET Core中使用托管启动(hosting startup)程序集,实现批量注册service
-
命名空间“System.Web.Mvc”中不存在类型或命名空间“Ajax”(是否缺少程序集引用?)
-
SQL Server中调用C#类中的方法实例(使用.NET程序集)
-
C# net core程序调试错误集(持续更新)