我有一个c#应用程序与两个库(moon-apns,tweetsharp)..每个库都有一个引用newtonsoft.json.dll但不同的版本...我的应用程序生成成功但一个库工作正常,另一个引发异常(无法找到dll文件)。在一个应用程序中使用不同版本的dll文件
我认为,当我只建立一个版本去bin文件夹,但我不知道该怎么办。
在此先感谢。
我有一个c#应用程序与两个库(moon-apns,tweetsharp)..每个库都有一个引用newtonsoft.json.dll但不同的版本...我的应用程序生成成功但一个库工作正常,另一个引发异常(无法找到dll文件)。在一个应用程序中使用不同版本的dll文件
我认为,当我只建立一个版本去bin文件夹,但我不知道该怎么办。
在此先感谢。
您可以强制这两个库通过引用同版本在你的app.config或web.config中使用Assembly Binding Redirects。显然这只有在库版本兼容时才有效。
您可能也可以处理['AppDomain.AssemblyResolve'事件](https://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve(v = vs.110).aspx)。 [见这里的例子](http://www.aboutmycode.com/net-framework/assemblyresolve-event-tips/)。 –
既然你说你有机会获得这两个库的源:
在这两个项目中,设置基准以不要求Specific Version
到newtonsoft。重建这些项目。
现在,当你建立你的主要项目,这两个库应确定与相同版本的newtonsoft DLL的,只要不存在兼容性问题
如果两个库都是用“特定版本”构建的,我不确定可以做什么。我假设你无法正确访问这两个库? – JeremyK
你在使用Nuget吗? –
我想你可以用这个帖子来解决它(我认为):http://stackoverflow.com/questions/8188191/how-to-manage-version-dependencies-in-ac-net-project – Rikon