NUnit DLL修订版不匹配

时间:2012-07-02 14:44:34

标签: c# .net nunit spring.net

我有这种奇怪的修订版本不匹配错误。我的所有NUnit测试项目都曾用于NUnit 2.5.7,但现在我将它们切换到使用NUnit v2.5.10,我继续收到以下错误:

  

FileLoadException:无法加载文件或程序集' nunit.framework,版本2.5.7 ......

注意:我清理,重建,仔细检查了参考文献,没问题。

使用Assembly Binder日志查看器(见下文),在我看来,这个错误的触发器是Spring.Testing.NUnit.dll ......这似乎很奇怪,因为Spring.Testing.Nunit 1.3.2 Nuget page在其中说依赖关系列表: NUnit(≥2.5.7)

知道我在这里失踪的是什么吗? 提前谢谢,

TB。

  

装配活页夹日志条目(02.07.2012 @ 16:06:35)

     

操作失败。   绑定结果:hr = 0x80131040。没有可用的描述。

     

装配管理器从以下位置加载:   C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll正在运行   可执行   F:\循环\ 4,开发\工作区\的3rdParty \ NUnit的\ 2.5.10 \ NUnit的-agent.exe   ---详细的错误日志如下。

     

===预绑定状态信息=== LOG:User = Mth \ tbourguignon LOG:DisplayName = nunit.framework,Version = 2.5.7.10213,   Culture = neutral,PublicKeyToken = 96d09a1eb7f44a77(完全指定)   日志:Appbase = file:/// F:/ robin / 4-Development / Workspace / Application   日志:初始PrivatePath =   Rh.Robin.Common.Tests \ BIN \调试; Rh.Robin.Service.Test \ BIN \调试; Rh.Robin.Domain.Unit.Test \ BIN \调试; Rh.Robin.Service.Unit.Test \ BIN \调试; Rh.Robin.Web.UI.MVC.Unit.Test \ BIN \调试   日志:动态Base = NULL LOG:Cache Base =   C:\ Users \用户tbourguignon.Mth \应用程序数据\本地的\ Temp \ nunit20 \ ShadowCopyCache \ 4980_634768419945070499   日志:AppName = Tests_29030132调用程序集: Spring.Testing.NUnit,   Version = 1.3.2.40943 ,Culture = neutral,PublicKeyToken = 65e474d141e25e07。   ===日志:此绑定在默认加载上下文中启动。日志:找不到应用程序配置文件。日志:使用主机配置文件:LOG:   使用来自的机器配置文件   C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中。   日志:政策后参考: nunit.framework,Version = 2.5.7.10213 ,   Culture = neutral,PublicKeyToken = 96d09a1eb7f44a77日志:GAC Lookup是   不成功。日志:尝试下载新网址   文件:/// F:/robin/4-Development/Workspace/Application/nunit.framework.DLL。   日志:尝试下载新网址   文件:/// F:/robin/4-Development/Workspace/Application/nunit.framework/nunit.framework.DLL。   日志:尝试下载新网址   文件:/// F:/robin/4-Development/Workspace/Application/Rh.Robin.Common.Tests/bin/Debug/nunit.framework.DLL。   日志:程序集下载成功。尝试设置文件:   F:\循环\ 4,开发\工作区\应用\ Rh.Robin.Common.Tests \ BIN \调试\ nunit.framework.dll中   日志:进入下载缓存设置阶段。日志:程序集名称是:   nunit.framework,Version = 2.5.10.11092 ,Culture = neutral,   PublicKeyToken = 96d09a1eb7f44a77警告:比较程序集名称   导致不匹配:修订号错误:装配参考   与找到的装配定义不匹配。错误:安装程序因hr而失败   = 0x80131040。错误:无法完成程序集的设置(hr = 0x80131040)。探测终止。

2 个答案:

答案 0 :(得分:2)

您是否从引用新版点的NUnit获得了什么?如果没有,您可以做的最简单的事情是返回并引用与Spring在代码中引用的版本匹配的旧版NUnit程序集。

另一个选项是修改(Spring)应用程序的配置以使用binding redirects来获取更新版本的NUnit程序集。

让我想知道Spring对NUnit程序集的引用是否将Specific Version设置为true。但似乎不太可能。这是关于.NET locates and binds assemblies at runtime

的参考

答案 1 :(得分:0)

不知怎的,我设法解决了这个问题...但我仍然不知道是什么导致了这个问题。我对引用进行了大量清理,排除了项目中的所有NUnit引用,删除了所有DLL并仅重新引入了新的DLL。我只能猜测一个DLL被卡在某个地方而Spring正在捡起它而不是新的...但是疯狂猜测:(