日期:2014-05-20  浏览次数:20878 次

(强命名的问题询问)显示在%system%/assembly的Strong Naming的程序集无法在VS引用中定位
请看图,c:\windows\assembly 里面都显示了我的DLL文件,但在VS 2008引用里面去无法找到该文件。

步骤:
1。 编写Class Library
2。 强命名签名
3。 用gacutil -i部署到c:\windows\assembly 

之后出现图片的问题。谢谢.

http://wq9v2g.blu.livefilestore.com/y1po3L_AzWIzyy-2Z7-VYVkLaXebenla5x0F9gKC5mV9jlz0gnVE0SklCh0EPxLBo5YO4qs3Gmg3sov_j0ei-H63PeaZKumUvIe/Strong%20Naming%20Assembly%20Cannot%20Been%20Located.png



------解决方案--------------------
MSDN 说明 :

强烈建议您不要 将程序集安装到 GAC,除非您要与该系统上运行的其他应用程序共享这些程序集。另外请注意,不能从您项目中的 GAC 中直接引用程序集。如果要使用 GAC 中的程序集,应该将程序集放到本地文件夹,然后添加一个对此文件夹中的程序集的引用。如果您不希望将该程序集本地复制到项目文件夹,则可能需要将该程序集的复制本地属性设置为 False。运行时,应用程序将使用 GAC 中的程序集。
http://support.microsoft.com/kb/306149/zh-cn
------解决方案--------------------
这些东西你都应该自己查一下msdn,
文档说还有以下两个作用
1. 可以更好的控制assembly的版本,保证别人无法发布一个你的程序集的后续版本。用户可以确认所有的version都是来自同一个发布者
2. 。net framework可以知道你的程序集在构建出来是不是被恶意修改过。

总之由于他的数字签名,也可以增强一下安全检查方面的验证的。