VS2005 公钥 私钥SN.EXE使用

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 
4.输入sn -t SampleKeyPublic.snk 得到public key token 

打开VS2005,找到项目,然后右击"项目名"找到"属性","属性"里面有个"Signing"的选项卡,然后钩上
"Sign the assembly",再Choose a strong name key file.做完了操作,然后记得保存,编译
这样你的DLL才能拖到GAC,GAC就是"全局程序集缓存",这就是为什么你的你的项目的bin文件夹下没有System.Data,你都能引用的原因,因为程序会自动去找GAC,GAC的位置在win 2003中是"c:\windows\assembly".

如果你的assembly在GAC中,那么你的东西也是蛮吊的。


 SQl Server 2005 Sample bug 是指在“C:\Program Files\Microsoft SQL Sever\90\Samples\Integration Service\Programming Samples\Control Flow\SqlConnection Manager Sample\SqlConnMgrCS”的Sample有问题
请参照如下修改:
1.SqlConnMgrCS.cs文件中的13行
   应改成:SqlConnMgrCSUI.SqlConnMgrUICS,SqlConnMgrUICS
2.在SqlConnMgrCSUI项目中的SqlConnMgrUIFromCS.cs中的按钮在SQL Server的SSIS Designer中根本点不动
   所以我们必须到VS2005中帮它触发事件,然后Copy它的代码到相应的事件处理程序中。
posted @ 2011-09-01 18:45  上海-天浩  阅读(699)  评论(0编辑  收藏  举报

Living in ShangHai

Copyright © 2008 天浩阁 Corporation, All Rights Reserved