.net 强命名程序集

.Net使用Name、Version、Culture、PublicToken四个属性来唯一标识一个程序集,而不同产品前三个属性(Name、Version和Culture)完全相同的情况是有可能发生的,如此一来,这唯一标识程序集的重任就落到PublicToken的头上了。强命名的程序集正是使用RSA来保证PublicToken的唯一性,因为在理论上,非对称算法RSA生成的公钥/私钥对不会重复。.Net正是通过在编译项目时将指定的公钥/私钥对写入程序集来保证其唯一性。 

Windows 中常常出现“DLL hell”问题的原因就是因为在进行软件升级或安装时,程序集不能唯一的标识而当前的程序集文件会替代以前的文件,而使原来的软件不能正常的或不能如预期的那样工作。

posted @ 2012-02-05 21:55  challengesoflife  阅读(317)  评论(0编辑  收藏  举报