我搜索并发现了类似的问题,但给出的答案对我不起作用。
这是.NET Core特有的。我正在用Xunit和Moq编写单元测试,我得到的错误是
抛出异常:'System.IO.FileNotFoundException'
其他信息:无法加载文件或程序集 'System.Net.Http,Version = 4.1.1.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。该 系统找不到指定的文件。
My Test项目的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复制到Test项目bin,一切正常。现在,测试项目本身不使用System.Net.Http命名空间中的任何内容 - 只有在WebApi项目中测试的方法才引用它。
Test项目是否应该将System.Net.Http.dll复制到它的bin文件夹中?如果是这样,为什么在构建过程中没有发生这种情况?
答案 0 :(得分:0)
这可能与此有关:https://github.com/dotnet/corefx/issues/9846
我建议您更新到VS 2017并为System.Net.Http
程序集执行绑定重定向。