我有一个Visual Studio项目,构建正常,并且nunit 2测试在Visual Studio中运行正常,使用测试适配器和/或第三方工具(例如Code Rush,TestDriven.net等)
但是,当我在同一个项目上运行nunit-console版本2.6.4.14350时,它会失败,并显示以下错误。
System.IO.FileLoadException:无法加载文件或程序集 ' System.Web.Mvc,Version = 4.0.0.0,Culture = neutral, 公钥= 31bf3856ad364e35'或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (来自HRESULT的异常:0x80131040)文件名: ' System.Web.Mvc,Version = 4.0.0.0,Culture = neutral, 公钥= 31bf3856ad364e35'
这是事实,因为我使用的是System.Web.Mvc Version = 5.2.3,但我仍对此消息感到困惑
答案 0 :(得分:1)
编译时这样做的原因是项目中的web.config文件中存在绑定重定向。
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
构建和Visual Studio测试运行程序都尊重这一点,但是nunit-console没有。
使用msbuild
时verbosity:diagnostic
会在使用此绑定重定向时显示警告。
然后,您可以解决问题,以便所有内容都指向最新版本,问题就会消失。 然后你可以修复