Geo*_*ros 6 .net odata ninject.web.mvc asp.net-web-api
我们的项目使用asp.Net Web Api和我们的部分要求,以便用户通过Excel查看数据,我们想介绍OData Feed.
所以我安装了oData包:
<package id="Microsoft.AspNet.WebApi.OData" version="5.3.0" targetFramework="net45" />
Run Code Online (Sandbox Code Playgroud)
通过这样做,升级了以下包:
- <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" />
Run Code Online (Sandbox Code Playgroud)
我稍微修改了我的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)
Run Code Online (Sandbox Code Playgroud)
然后我查看Ninject配置类以查看以下行:
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
Run Code Online (Sandbox Code Playgroud)
显示红色的"DependencyResolver"(那是Resharper)并说它无法解决它.看看对象浏览器,我确实找不到它了.
基本上我将Microsoft.AspNet.WebApi从5.2.0升级到5.2.2并丢失了DependencyResolver并与Ninject兼容.
你知道如何解决这个问题吗?
好吧我似乎找到了解决方案.
它完全不是ninject和aspnet的5.2.2之间的不兼容性
问题是安装oData将一些AspNet软件包升级到5.2.2,但忘了其他一些.当我将所有Microsoft.AspNet.WebApi*软件包都收到5.2.2时,问题就会消失.
我希望这仍然有助于其他人......
| 归档时间: |
|
| 查看次数: |
5563 次 |
| 最近记录: |