我使用的是Vista 64位系统,并且有一个使用x86配置构建的项目。一切正常。现在,我们当时要创建测试。我们有NUnit 2.4.8,但是有很多问题。
当我们直接选择.dll时,测试将通过Nunit.exe(gui)进行加载,但是执行时,我们会遇到system.badimageformatexception。
我已经在Google上搜索了有关nunit.exe.config的一些技巧,但没有任何效果。 (更改为UTF8 ...取消注释.net版本以进行启动)。
任何的想法?
更新
我已经清理了解决方案并清除了所有BIN文件夹。现在,当我编译时,我清楚地看到我在bin目录中只有/x86/,而在x64中没有旧的/debug/。
当我使用Nunit时,我有一个异常(正在加载中): System.IO.FileNotFoundException ...
服务器堆栈跟踪:
在System.Reflection.Assembly._nLoad处(AssemblyName文件名,字符串codeBase,证据assemblySecurity,程序集locationHint,StackCrawlMark&stackMark, bool throwOnFileNotFound, bool forIntrospection)
在System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,证据assemblySecurity,StackCrawlMark&stackMark, bool 值用于自省(introspection))
在System.Reflection.Assembly.InternalLoad处(字符串assemblyString,证据assemblySecurity,StackCrawlMark&stackMark,用于自省(introspection)的 bool 值)
在System.Reflection.Assembly.Load(String assemblyString)
在NUnit.Core.Builders.TestAssemblyBuilder.Load(字符串路径)
在NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName,Boolean autoSuites)
在NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName,String testName,Boolean autoSuites)
在NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage包)
在NUnit.Core.TestSuiteBuilder.Build(TestPackage包)
在NUnit.Core.SimpleTestRunner.Load(TestPackage包)
在NUnit.Core.ProxyTestRunner.Load(TestPackage包)
在NUnit.Core.ProxyTestRunner.Load(TestPackage包)
在NUnit.Core.RemoteTestRunner.Load(TestPackage包)
在System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object [] args,Object server,Int32 methodPtr, bool fExecuteInContext,Object []&outArgs)
在System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage消息,Int32 methodPtr, bool 值fExecuteInContext)
异常重新引发为[0]:
在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)
在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)
在NUnit.Core.TestRunner.Load(TestPackage包)
在NUnit.Util.TestDomain.Load(TestPackage包)
在NUnit.Util.TestLoader.LoadTest(String testName)
更新2
我正在使用已修改为x86而不是x64的任何CPU进行编译。原因是debug。上一链接已经对此进行了讨论。我必须确认NUnit在64位mod和Corflags.exe中运行
最佳答案
好的,我在website中找到了解决方案。您必须使用\NUnit-2.4.8\bin\nunit-x86.exe而不是\NUnit-2.4.8\bin\nunit.exe ...不知道\bin\有2个nunit !! !
全部Thx
关于c# - 如果x86构建,则Nunit.exe无法在Vista 64位系统上运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/208985/