我们的项目正在使用asp.Net Web Api和部分要求,以便用户通过Excel查看数据,我们想介绍OData Feed。
所以我安装了oData包:
<package id="Microsoft.AspNet.WebApi.OData" version="5.3.0" targetFramework="net45" />
通过这样做,升级了以下包:
- <package id="Microsoft.AspNet.WebApi.Client" version="5.2.0" targetFramework="net45" />
- <package id="Microsoft.AspNet.WebApi.Core" version="5.2.0" targetFramework="net45" />
+ <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
+ <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
- <package id="Newtonsoft.Json" version="5.0.6" targetFramework="net45" />
+ <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
我稍后修改了我的WebApiConfig以添加OData路由(但我认为这是无关紧要的,这是我不提供代码的原因)。重建失败多次,所以我决定按照多个博客帖子的建议重新启动Visual Studio。
然后所有构建正常,我在项目上启动调试器。我得到以下异常:
An exception of type 'System.IO.FileLoadException' occurred in Ninject.Web.Common.dll but was not handled in user code
Additional information: Could not load file or assembly 'System.Web.Http, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
然后我查看Ninject配置类以查看以下行:
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
显示红色的“DependencyResolver”(那是Resharper)并说它无法解决它。看看对象浏览器,我确实找不到它了。
基本上我将Microsoft.AspNet.WebApi从5.2.0升级到5.2.2并丢失了DependencyResolver并与Ninject兼容。
你知道如何解决这个问题吗?
答案 0 :(得分:5)
好像我找到了解决方案。
ninject和aspnet的5.2.2之间根本不兼容
问题是安装oData将一些AspNet软件包升级到5.2.2但忘记了其他一些软件包。 当我将所有Microsoft.AspNet.WebApi *软件包都收到5.2.2时,问题就会消失。
我希望这仍然有助于其他人...