Kev*_*vin 6 .net global-assembly-cache visual-studio-2008
我有一个项目需要使用NHibernate与我的Oracle数据库进行通信.
我工作场所的许多项目都使用NHibernate,因此NHibernate程序集被放置在全局程序集缓存中,这是一个我不太了解的工具.根据我的研究,我收集了以下内容:
第二点显然与其他三个相矛盾,但如果它完全是假的,我就不会有任何引用库的问题.它肯定反映了现实,因为我的GAC程序集无法在"添加引用"窗口中找到.
我想知道两件事:
所有引用它的.NET项目现在都将使用新版本.
不,那叫做DLL地狱.应用程序引用程序集的特定版本.您可以更新DLL并更新使用它的应用程序.并且不会破坏使用该DLL的旧应用程序,但不会重新编译.您可以使用GAC执行此操作,因为它可以存储DLL的多个版本.或者,您可以通过将DLL保存在与应用程序的EXE相同的目录中来轻松完成此操作.
GAC中的程序集不会出现在"添加引用"对话框中.必然如此,您不知道您的用户在她的GAC中存储了什么.您可以使用开发计算机上的"浏览"选项卡,这样您就可以确保使用DLL 的特定版本.
GAC对需要分发安全更新的公司非常重要.像微软一样.它确保没有浮动的DLL的未修补副本.对于[ComVisible]程序集解决COM的DLL Hell问题也很重要.就是这样.