【问题标题】:System.Net.Http could not loadSystem.Net.Http 无法加载
【发布时间】:2015-06-23 00:54:06
【问题描述】:

我目前正在开发一个 Web API 项目,我有一个可以正常工作的简单控制器。我创建了一个单元测试项目来测试我的 API 控制器。该项目引用System.Net.Http (4.0.0.0)System.Web 程序集以及Microsoft ASP.NET Web API 2.2 Web Host NuGet 包及其所有子包。当我运行我的第一个 TestMethod 时,它失败并抛出异常:

无法加载文件或程序集 'System.Web.Http, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其之一 依赖关系。定位程序集的清单定义不 匹配程序集引用。

我尝试了很多东西,但似乎都没有解决我的问题,而且References -> Assemblies 中没有版本为 5.2.2.0 的System.Net.Http。我目前正在使用 Visual Studio Community Edition 2013。谢谢!

【问题讨论】:

  • 您的 WebConfig 在 /runtime/dependentAssembly/assemblyIdentity[name="System.Web.Http"] 显示什么版本?
  • 首先,System.Net != System.Web。其次,尝试将您的 TestProject 目标框架与 Web Api 项目匹配,您应该在 References -> Assemblies 中找到正确的版本。
  • 没有这样名字的dependentAssembly... :/
  • 我的项目已经使用了相同的目标框架。

标签: c# visual-studio unit-testing asp.net-web-api assemblies


【解决方案1】:

尝试为该项目重新安装 NuGet 包 Microsoft ASP.NET Web API 2.2 Core Libraries? System.Web.Http 5.2.2.0 包含在该包中。如果正确安装了 NuGet 包,您应该能够在 5.2.2.0 或更高版本的项目参考下看到 System.Web.Http 的参考。

【讨论】:

  • 谢谢,问题解决了!我不得不卸载Web Host 包并手动安装Core Libraries
  • 如果有人不确定:要重新安装,在 VS 中转到 Tools > NuGet Package Manager > Package Manager Console 并运行 Update-Package Microsoft.AspNet.WebApi -reinstall
猜你喜欢
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
相关资源
最近更新 更多