强类型程序集签名

VS2005 strong name 的原理:
先利用SN.exe这个工具生成一个比如SampleKey.snk的文件,这个文件的英文原文叫string name key file,然后用加密的算法根据SampleKey.snk生成一个SampleKeyPublic.snk.最后在根据 SampleKeyPublic.snk提取一个public key token
,public key token是一个16位的数字和字母混合的数(我不敢确定是不是十六进制数):大致流程如下:

SampleKey.snk --根据一定的算法--> SampleKeyPublic.snk---->public key token
所以我们只要SampleKey.snk和public key token就可以了,SampleKeyPublic.snk就没什么用了.因为SampleKeyPublic.snk的贡献做完了,所以我们不要为" 为什么在vs2003不用吊SampleKeyPublic.snk"而不爽.

实际操作如下:
1.打开SDK Command Prompt或者VS2005中的Visual Studio 2005 Command Prompt.而不是windows的cmd
2.输入sn -k SampleKey.snk,得到的文件在命令提示符的当前文件夹下(微软叫文件夹很少叫目录,最正点是folder)  (这个包括公钥和私钥)
3.输入sn -p SampleKey.snk SampleKeyPublic.snk  (提取公钥并将其存储在 SampleKeyPublic.snk  中
4.输入sn -t SampleKeyPublic.snk 得到public key token (可用sn -tp SampleKeyPublic.snk  进行显示公钥和 publicKey.snk 包含的公钥的标记



打开VS2005,找到项目,然后右击"项目名"找到"属性","属性"里面有个"签名"的选项卡,然后钩上"为程序集签名",再Choose a strong name key file(这个文件不知道是选择SampleKey.snk,还是SampleKeyPublic.snk,我选择后者是出现编译错误,所以我选择的是前者).做完了操作,然后记得保存,编译,这样你的DLL才能拖到GAC,GAC就是"全局程序集缓存",这就是为什么你的你的项目的bin文件夹下没有System.Data,你都能引用的原因,因为程序会自动去找GAC,GAC的位置在win 2003中是"c:\windows\assembly". 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值