Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 使用'的单元测试失败;无法加载文件或程序集';System.Net.Http,版本=4.1.1.0';_Unit Testing_Asp.net Core_Moq_Xunit - Fatal编程技术网

Unit testing 使用'的单元测试失败;无法加载文件或程序集';System.Net.Http,版本=4.1.1.0';

Unit testing 使用'的单元测试失败;无法加载文件或程序集';System.Net.Http,版本=4.1.1.0';,unit-testing,asp.net-core,moq,xunit,Unit Testing,Asp.net Core,Moq,Xunit,我搜索并找到了类似的问题,但给出的答案对我来说并不适用 这是特定于.NETCore的。我正在用Xunit和Moq编写单元测试,我得到的错误是 引发异常:“System.IO.FileNotFoundException” 其他信息:无法加载文件或程序集 'System.Net.Http,版本=4.1.1.0,区域性=中性, PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。这个 系统找不到指定的文件 我的测试项目的project.json文件如下所示: { "v

我搜索并找到了类似的问题,但给出的答案对我来说并不适用

这是特定于.NETCore的。我正在用Xunit和Moq编写单元测试,我得到的错误是

引发异常:“System.IO.FileNotFoundException”

其他信息:无法加载文件或程序集 'System.Net.Http,版本=4.1.1.0,区域性=中性, PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。这个 系统找不到指定的文件

我的测试项目的project.json文件如下所示:

{
   "version": "1.0.0",
   "buildOptions": {
      "debugType": "portable"
   },
   "dependencies": {
      "xunit": "2.2.0-beta2-build3300",
      "dotnet-test-xunit": "2.2.0-preview2-build1029",
      "My.App.DataAccess": "1.0.0",
      "My.App.Domain": "1.0.0",
      "My.App.Services": "1.0.0",
      "My.App.WebApi": "1.0.0",
      "Microsoft.AspNetCore.TestHost": "1.1.0",
      "Moq": "4.5.30"
   },
   "testRunner": "xunit",

   "frameworks": {
      "net462": {}
   }
}
只有单元测试失败了。主应用程序工作正常。我曾尝试手动将System.Net强制安装到project.json中,但它坚持安装4.3.0。我不确定它在哪里认为它需要4.1.1.0

编辑:我注意到,如果我将System.Net.Http.dll从WebApi项目bin复制到测试项目bin,一切正常。现在,测试项目本身不使用System.Net.Http命名空间中的任何内容——只有WebApi项目中正在测试的方法引用它


测试项目是否也应该将System.Net.Http.dll复制到其bin文件夹中?如果是这样,为什么在构建过程中不会发生这种情况?

这可能与此有关:


我建议更新到VS 2017,并对
System.Net.Http
程序集执行绑定重定向。

在包还原过程中是否收到任何警告?否。一切看起来都很好。你可以按照本文所述检查程序集绑定日志,以了解为什么你的应用程序需要这个特定版本。我们如何在新的csproj结构中执行绑定重定向?我在网络搜索中没有得到任何点击率。