Joe*_*nos 10 .net c# dll reference
不知怎的,我很幸运,从来没有处理过这个问题,尽管我认为这是一个常见的问题:
我有一个网络项目,让我们称之为SomeProject.SomeProject有一个第三方库的参考,我们称之为SomeThirdParty版本1.0.SomeProject还有一个本土类库的参考,我们称之为SomeLibrary.SomeLibrary也有一个参考SomeThirdParty,但不同的版本(让我们说2.0).
版本1.0和2.0 SomeThirdParty共享大多数相同的签名,但是是不同的实现.我需要SomeProject使用1.0实现,并SomeLibrary尽可能使用2.0实现.
我SomeProject使用它对log4net的引用进行编译.最终在bin目录中的DLL是SomeProject引用的DLL .在运行时,当运行代码时SomeLibrary,它会尝试从2.0版本执行代码SomeThirdParty,当然FileLoadException: Could not load file or assembly '也会失败,抛出SomeThirdParty, Version=2.0.0.0, Culture=[etc.]' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.
显然我可以升级SomeProject到较新的DLL或降级SomeLibrary到较旧的DLL,但由于许多原因它不是理想的.
我认为正确的答案涉及在GAC中安装SomeThirdParty,但我不确定我将如何做到这一点,以及它将如何影响其他开发人员和服务器.
您可能有任何建议表示赞赏.
谢谢您的帮助.
将SomeThirdParty的两个版本都放入GAC应该可以做你想要的.使用gacutil实用程序或Start-> Run-> assembly然后拖放.