【发布时间】:2014-11-13 17:13:14
【问题描述】:
我们的项目正在使用 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 的兼容性。
你知道解决这个问题的方法吗?
【问题讨论】:
标签: .net asp.net-web-api odata ninject.web.mvc