我有一个需要Newtonsoft.Json DLL版本10的C#类库(项目A)。
但是然后我有另一个C#类库(项目B),它需要Newtonsoft.Json DLL版本6。
我无法将项目B升级为使用10,因为重大更改太多。
是否可以同时存在两个版本?
我的问题是项目A具有Google.Apis依赖关系,而该依赖关系依赖于Newtonsoft.Json DLL,因此我不能简单地重命名DLL并将它们都放在同一目录中。
我已经看到其他解决方案提到了App.Config文件,但是由于这是一个类库,因此它没有配置文件。
反正有这样做吗?
答案 0 :(得分:0)
也许这可以帮助:
使用AppDomain.CurrentDomain.AssemblyResolve构建事件并加载特定的dll。
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
public static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//debug and check the name
if (args.Name == "MyDllName")
return Assembly.LoadFrom("c:\\pathdll\midllv1.dll")
else if(args.Name ="MyDllName2")
return Assembly.LoadFrom("c:\\pathdll\midllv2.dll");
else
return Assembly.LoadFrom("");
}