我有这种奇怪的修订版本不匹配错误。我的所有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)。探测终止。
答案 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正在捡起它而不是新的...但是疯狂猜测:(