小编Som*_*ost的帖子

Nunit测试项目中缺少System.Web.Http方法

我正在为编写一些单元测试ApiController。我继续System.MissingMethodExceptionSystem.Web.Http名称空间中获得方法的多个异常。

消息:System.MissingMethodException:找不到方法:'System.Net.Http.HttpRequestMessage System.Web.Http.ApiController.get_Request()'。

消息:System.MissingMethodException:找不到方法:'System.Threading.Tasks.Task`1 System.Web.Http.IHttpActionResult.ExecuteAsync(System.Threading.CancellationToken)'。

测试项目可以很好地编译,具有正确的using语句,包引用和绑定。但是,一旦它试图运行,就会抛出以上异常之一(首先遇到的那个,取决于代码的结构)。可能还值得注意的是,当System.Web.Http不使用方法时,测试项目可以正常运行。

我希望这个问题解决我的问题,但是我找不到任何差异。我已多次卸载/重新安装。验证两个项目都使用相同的版本(5.2.7.0)。通过在调试过程中查看模块来验证是否正在使用该版本。并验证两个项目的引用路径都指向正确的nuget包文件夹:(... \ Main \ src \ packages \ Microsoft.AspNet.WebApi.Core.5.2.7 \ lib \ net45 \ System.Web.Http。 dll)

以下是包装和绑定信息,如果还有其他需要,请告诉我。我已经浪费了几天,任何帮助将不胜感激。

主项目-packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="AutoMapper" version="8.1.0" targetFramework="net461" />
  <package id="EntityFramework" version="6.1.3" targetFramework="net461" />
  <package id="log4net" version="2.0.8" targetFramework="net461" />
  <package id="Microsoft.AspNet.OData" version="7.1.0" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.7" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.7" targetFramework="net461" /> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api2 system.web.http .net-4.6.1 visual-studio-2017

7
推荐指数
1
解决办法
182
查看次数