先利用SN.exe这个工具生成一个密匙文件aspnetpager.snk,这个文件的英文原文叫string name key file,然后用加密的算法根据aspnetpager.snk生成一个aspnetpagerPublic.snk.最后在根据 aspnetpagerPublic.snk提取一个public key token ,public key token是一个16位的数字和字母混合的数:大致流程如下: aspnetpager.snk --根据一定的算法--> aspnetpagerPublic.snk---->public key token
所以我们只要aspnetpager.snk和public key token就可以了,aspnetpagerPublic.snk就没什么用了.因为aspnetpagerPublic.snk的贡献做完了.实际操作如下:
1.打开SDK Command Prompt或者VS2005中的Visual Studio 2005 Command Prompt.而不是windows的cmd
2.输入sn -k aspnetpager.snk,得到的文件在命令提示符的当前文件夹下
3.输入sn -p aspnetpager.snk aspnetpagerPublic.snk (从aspnetpager.snk中提取公匙存入aspnetpagerPublic.snk文件)
4.输入sn -t aspnetpagerPublic.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".
如果你的文件没有数字签名,需要另外的软件去计算hash。