使用来自文件“***.snk”的公钥对输出签名时出错

遇到的问题

CS7027 C# 使用来自文件“..\***.snk”的公钥对输出签名时出错 -- 未找到文件

解决方案

该问题属于解决方案中,该项目的签名出现了异常。

因此需要生成一个自身的签名,步骤如下:

1.打开VS的开发命令程序

输入命令:

sn -k G:\samplekey.snk // 生成强名称密钥

sn -p G:\StrongKey.snk G:\key.publickey // 将公钥从 key.snk 提取到 key.publickey 中

sn -tp G:\key.publickey // 显示存储在文件 key.publickey 中的公钥

2.右键项目,选择 “属性”,并在属性中选择 “签名”

3.重新编译即可。

强命名程序集的缘由

       目前windows中出现的dll hell问题(两个不同的公司可能开发处具有相同名称的程序集,如果将相同名称的程序集放置到同一个目录下,则会出现程序集覆盖现象,最后安装的程序集会覆盖前面的程序集,从而可能导致应用序不能正常运行)。由此看来,仅靠名称来区分程序集是不足够的。clr采取了强命名程序集的方式来唯一的表示程序集。

       强命名程序集包含四个标识:名称,版本号,语言文化标识和一个共有/私有密钥对。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值