2014-09-19 44 views
6

我們的項目使用asp.Net Web Api,並且我們的部分要求是讓用戶可以通過Excel查看數據,我們想要介紹OData Feed。缺少System.Web.Http中的DependencyResolver 5.2.2

所以我安裝的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" /> 

我sligthly修改了我的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的兼容性。

你知道一個解決這個問題的方法嗎?

回答

5

好吧,好像我找到了解決方案。

這是不是在ninject和ASPNET 5.2.2

問題之間的所有的不兼容是安裝的OData升級一些ASPNET包5.2.2,但忘了一些人。 當我將所有的Microsoft.AspNet.WebApi *包安裝到5.2.2時,問題就消失了。

我希望這將仍然有助於其他人...

+0

你是一個救命的人..感謝張貼! – alimac83 2014-12-23 00:38:42

+0

很高興聽到我能幫忙;-) – 2014-12-24 08:58:47