一个项目引用不同版本DLL
2015-01-26 10:54
337 查看
今天研究了一下.net的web api,写了几个测试方法,运行报错,上网查找问题后发现,Newtonsoft.Json作者答复4.5版本的dll无法完成web api里ef entity序列化工作,于是升级json库到6.0后,本地调试通过,再将程序发布到测试机上,报了久违了的黄白页(自从改造成angularjs后基本没有黄白页了)
按理说已经将项目引用的DLL升级到6.0了,怎么还会报找不到4.5的错呢?经过同事提醒,可能是别的DLL还在依赖4.5,他还建议用Reflector查看引用来确认,果不其然
主程序居然引用了同名的两不同版本的DLL,但是本机能运行,为什么丢到测试机上就报错,原来在我升级dll时系统自动在web.config中加入了一下节点
用这个方法来兼容老版本的Json,这个方法适合于新版本dll兼容老版本dll的情况,如果碰到了一个项目中确实要同时引用两个不同版本的DLL时,譬如要用到老版本DLL中的数据导出方法,又要同时用到新版本DLL中的数据导入方法时,就需要修改成以下节点形式
感谢原问题回答者:http://stackoverflow.com/questions/2460542/using-different-versions-of-the-same-assembly-in-the-same-folder
按理说已经将项目引用的DLL升级到6.0了,怎么还会报找不到4.5的错呢?经过同事提醒,可能是别的DLL还在依赖4.5,他还建议用Reflector查看引用来确认,果不其然
主程序居然引用了同名的两不同版本的DLL,但是本机能运行,为什么丢到测试机上就报错,原来在我升级dll时系统自动在web.config中加入了一下节点
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>
用这个方法来兼容老版本的Json,这个方法适合于新版本dll兼容老版本dll的情况,如果碰到了一个项目中确实要同时引用两个不同版本的DLL时,譬如要用到老版本DLL中的数据导出方法,又要同时用到新版本DLL中的数据导入方法时,就需要修改成以下节点形式
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Castle.DynamicProxy2" publicKeyToken="407dd0808d44fbdc" /> <codeBase version="2.1.0.0" href="v2.1\Castle.DynamicProxy2.dll" /> <codeBase version="2.2.0.0" href="v2.2\Castle.DynamicProxy2.dll" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" /> <codeBase version="1.1.0.0" href="v2.1\Castle.Core.dll" /> <codeBase version="1.2.0.0" href="v2.2\Castle.Core.dll" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
感谢原问题回答者:http://stackoverflow.com/questions/2460542/using-different-versions-of-the-same-assembly-in-the-same-folder
相关文章推荐
- 一个项目引用不同版本dll
- .net在同一个项目中要引用两种不同版本的dll(dll hell)的解决办法
- .net在同一个项目中要引用两种不同版本的dll(dll hell)的解决办法
- 同一个解决方案或有依赖关系的两个项目引用同名但不同版本的DLL
- 解决一个项目里面加载两个同名不同版本的DLL的问题
- 不同版本的控件在同一个项目中能否一起使用
- 子系统公用同一个Dll,但不同版本的解决办法
- 一个项目里同时用2个或多个不同版本的echarts插件
- 使用Visual Studio .NET 2010的配置和条件编译在一个项目实现不同版本
- 一个页面中引用多个不同版本的jquery
- 项目中使用同一dll的不同版本
- 如何在一个机器上针对不同的项目需求使用不同的pyhon版本和包
- .NET 项目中引用的DLL 版本不一致的问题
- .NET 项目中引用的DLL 版本不一致的问题
- 新建立一个类似于CuteEditor的项目,希望有人参加。发布一个测试版本的dll
- 在visual studio中使用编译器指令让一个项目为不同产品生成不同版本(或为不同平台生成不同版本)
- Windows Phone开发,引入dll出现“无法向项目中添加对较高版本或不兼容程序集的引用”
- androidstudio 一个项目多个不同功能的版本解决方法(多渠道打包,生成不同包名的包)
- 项目中同一个dll的x86和x64同时引用
- 项目里不同版本之间调用DLL,引发的问题