2013-03-29 38 views
8

我有一个c#应用程序与两个库(moon-apns,tweetsharp)..每个库都有一个引用newtonsoft.json.dll但不同的版本...我的应用程序生成成功但一个库工作正常,另一个引发异常(无法找到dll文件)。在一个应用程序中使用不同版本的dll文件

我认为,当我只建立一个版本去bin文件夹,但我不知道该怎么办。

在此先感谢。

+1

如果两个库都是用“特定版本”构建的,我不确定可以做什么。我假设你无法正确访问这两个库? – JeremyK

+0

你在使用Nuget吗? –

+2

我想你可以用这个帖子来解决它(我认为):http://stackoverflow.com/questions/8188191/how-to-manage-version-dependencies-in-ac-net-project – Rikon

回答

4

您可以强制这两个库通过引用同版本在你的app.config或web.config中使用Assembly Binding Redirects。显然这只有在库版本兼容时才有效。

+0

您可能也可以处理['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/)。 –

2

既然你说你有机会获得这两个库的源:

在这两个项目中,设置基准以不要求Specific Version到newtonsoft。重建这些项目。

现在,当你建立你的主要项目,这两个库应确定与相同版本的newtonsoft DLL的,只要不存在兼容性问题

相关问题