问题
安装Microsoft ASP.NET Web API OData 包 5.0.0-rc1 prerelease 后,我最终遇到以下异常:
无法加载文件或程序集 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
我的 MVC 4 项目是全新的,非常小,没什么特别的。我的目标是 .NET 框架 4.5
我需要这个nuget 包来使用 Delta 类实现 PATCH (当我使用包的 4.0.0.0 版本时,Delta 类不起作用)。
我该如何解决?
我的 System.Web.Http 版本
在GAC我有System.Web.Http 的5.0.0.0版本
gacutil -l System.Web.Http 全局程序集缓存包含以下程序集: System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
在Visual Studio中,当我浏览程序集时,System.Web.Http 的给定版本是4.0.0.0(为什么?)
在我的项目中,对 System.Web.Http 的引用
- 版本为5.0.0.0
- 指向包的 \lib\net45\ 文件夹
- 有 CopyLocal=true
我尝试过的事情
我试图在 Web.config 中将重定向 v 4.0.0.0 绑定到 5.0.0.0
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0-4.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
但它给了我另一个例外:
尝试通过方法 'System.Web.Http.GlobalConfiguration..cctor()' 访问字段 'System.Web.Http.GlobalConfiguration.CS$<>9__CachedAnonymousMethodDelegate2' 失败。
我猜核心 Web Api 引擎确实需要使用 v 4.0.0.0。
相关问题
代码分析错误 无法在 MVC4 Web API 中 加载文件或程序集 'System.Net.Http, Version=2.0.0.0 无法在 MVC4 Web API 中加载文件或程序集 'System.Net.Http, Version=2.0.0.0