NUnit "无法加载文件或程序集'MyTestProject'"

30

我正在配置一台新的64位机器作为构建服务器。 当我尝试将我的NUnit测试程序集加载到NUnit GUI中时,我会收到以下错误。

看起来没有什么明显的缺失,所有依赖项都似乎已经存在。 所有DLL都是针对x86平台编译的。

使用的是NUnit 2.4.7。 我已经尝试升级到2.4.8,但仍出现相同的错误。

System.IO.FileNotFoundException: 无法加载文件或程序集'MyTestProject'或其某个依赖项。系统找不到指定的文件。

System.IO.FileNotFoundException...

Server stack trace: 
   at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
   at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path)
   at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
   at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
   at NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package)
   at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
   at NUnit.Core.SimpleTestRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Core.RemoteTestRunner.Load(TestPackage package)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.Load(TestPackage package)
   at NUnit.Util.TestDomain.Load(TestPackage package)
   at NUnit.Util.TestLoader.LoadTest(String testName)
4个回答

31

解决方案是将测试项目构建为“AnyCPU”而不是32位。我可以避开强制使用32位的限制。

感谢David和Joe90的建议。我学到了一些新东西。fuslogvw.exe很棒,我之前不知道它存在。


4
是的,但如果你需要将项目编译为x86架构,最好使用nunit-x86。 - nightcoder
谢谢NeedHack!帮我免去了更多的麻烦。也许错误信息应该再清楚一点。唉 - undefined

11

5

使用fuslogvw.exe(从Visual Studio命令提示符中以管理员身份运行)激活Fusion日志,以查看程序集加载器尝试加载的内容和所有发生的错误。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接