【问题标题】:Error unit testing ASP.NET MVC 5错误单元测试 ASP.NET MVC 5
【发布时间】:2017-11-15 14:24:11
【问题描述】:

我正在开发一个 ASP.NET MVC 5 应用程序,它按预期工作。

现在尝试在测试项目中对一个控制器进行单元测试,当我运行它时出现以下异常

“System.IO.FileLoadException”类型的异常发生在 ControlCompras.UnitTests.dll 但未在用户代码中处理

附加信息:无法加载文件或程序集 'System.Web.Mvc,版本=5.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。这 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT 异常:0x80131040)

但是,Test 项目中引用的 System.Web.Mvc.dll 的版本是 5.2.2.0。它与 ASP.NET 项目引用的程序集相同。

为什么要加载版本 5.0.0.0?

谁能告诉我如何解决这个问题?

这是我尝试过的:

  1. System.Web.Mvc.dll 具有属性 Copy Local = true
  2. 我已使用以下 nuget 命令 install-package Microsoft.AspNet.Mvc -version 5.2.2 重新安装了包 Microsoft.AspNet.Mvc

here's the app.config file

提前致谢。

【问题讨论】:

标签: .net asp.net-mvc


【解决方案1】:

我有同样的错误。我尝试从单元测试项目中的 nuget 包管理器更新“System.Web.Mvc”包。但它没有反映出对单元测试项目的引用有任何变化。 这是我的解决方案:

  • 我打开主项目引用并双击 导致在对象浏览器中查看的“System.Web.Mvc”包。
  • 然后我只是复制了在文件资源管理器中打开它的文件路径。我在哪里找到“System.Web.Mvc”包的 dll 文件。
  • 我在单元测试项目中找到了旧版本的“System.Web.Mvc”包的 dll 文件。
  • 我用从主项目中找到的“System.Web.Mvc”包的dll文件替换了它。

    成功了。虽然这不是升级页面的正确方法,但它很快。

【讨论】:

    【解决方案2】:

    我刚刚遇到这个错误。但是我能够通过更新 asp.net 项目和单元测试项目的 nuget 包来修复它。 Nuget 将更新这两个引用。冲突可能不会发生在 System.web.Mvc 中,但也会发生在其他文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 2012-05-12
      相关资源
      最近更新 更多