我有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 不是我的项目,我无法重新编译。我能做些什么来避免这个错误?谢谢!
答案 0 :(得分:3)
这个问题被称为“Dependency Hell”。
来自MSDN的解决方案:
如果您在目录中有多个版本的程序集 想要引用该程序集的特定版本,必须使用 元素而不是的privatePath属性 元件。如果使用该元素,则运行时将停止 探测第一次找到与简单匹配的程序集 引用的程序集名称,是否正确匹配。如果它 是正确的匹配,使用该程序集。如果不对 匹配,探测停止和绑定失败。
或者您可以使用AppDomain.AssemblyResolve Event来解析要使用的程序集。