【发布时间】:2013-09-29 17:34:46
【问题描述】:
问题
安装 Microsoft ASP.NET Web API OData 包 5.0.0-rc1 预发行版后,我最终遇到以下异常:
无法加载文件或程序集 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其之一 依赖关系。定位程序集的清单定义不 匹配程序集引用。 (HRESULT 异常:0x80131040)
我的 MVC 4 项目是全新的,非常小,没什么特别的。我的目标是 .NET 框架 4.5
我需要这个 nuget package 到 implement PATCH using the Delta class (当我使用 4.0.0.0 版本的包时,Delta 类不起作用)。
我该如何解决这个问题?
我的 System.Web.Http 版本
在 GAC 我有 System.Web.Http 的 5.0.0.0 版本
gacutil -l System.Web.Http 全局程序集缓存包含 以下程序集:System.Web.Http,版本=5.0.0.0, 文化=中性,PublicKeyToken=31bf3856ad364e35, 处理器架构=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' 失败了。
我猜v 4.0.0.0确实需要被核心Web Api引擎使用。
相关问题
Code Analysis error Could not load file or assembly 'System.Net.Http, Version=2.0.0.0 in MVC4 Web API Could not load file or assembly 'System.Net.Http, Version=2.0.0.0 in MVC4 Web API
【问题讨论】:
-
也许这个答案可以帮助你:stackoverflow.com/a/18700279/795876
标签: asp.net-mvc-4 asp.net-web-api odata assembly-resolution