.Net引用不同版本库的麻烦

时间:2018-06-14 13:24:05

标签: c# .net f#

我有F#(C#我认为相同)项目 A ,它引用了3.4版的QuickGraph库。项目 B 中使用的 A 引用了现代QuickGraph 3.6。在 B 的app.config中:

tabBarController.moreNavigationController.topViewController.view.tintColor

它的作品。另外一个项目 C 在运行时加载 B 。当调用 A 的某些方法时,我收到了IO错误:无法加载QuickGraph库3.4版。

项目 C 不是我的项目,我无法重新编译。我能做些什么来避免这个错误?谢谢!

1 个答案:

答案 0 :(得分:3)

这个问题被称为“Dependency Hell”。

来自MSDN的解决方案:

  

如果您在目录中有多个版本的程序集   想要引用该程序集的特定版本,必须使用   元素而不是的privatePath属性    元件。如果使用该元素,则运行时将停止   探测第一次找到与简单匹配的程序集   引用的程序集名称,是否正确匹配。如果它   是正确的匹配,使用该程序集。如果不对   匹配,探测停止和绑定失败。

或者您可以使用AppDomain.AssemblyResolve Event来解析要使用的程序集。