Mat*_*nty 18 c# 64-bit nunit badimageformatexception
今天是个好日子.我整天都在工作中遇到同样的问题,并且正在努力找到任何新的路径.
当我的解决方案在服务器上构建时,我收到以下错误.我在解决方案中运行/调试所有测试没有问题,并且构建正常.服务器和我的电脑都是x64.我已经遵循了许多建议,但我发现这些建议都无济于事.
在所有配置下,我已将Platform Target设置为x86,用于我的解决方案中的所有项目.
我知道有一个nunit-console-x86.exe可能会有所不同,但我不知道在代码中指定这一点.
请注意我已经开始上网了,如果我错过了什么,请道歉.
System.BadImageFormatException:无法加载文件或程序集
"Spin.TradingServices.DataAcquisition.Test.NUnit,Version = 1.0.12103.2060,Culture = neutral,PublicKeyToken = null"或其依赖项之一.尝试加载格式不正确的程序.
文件名:'Spin.TradingServices.DataAcquisition.Test.NUnit,Version = 1.0.12103.2060,Culture = neutral,PublicKeyToken = null'服务器堆栈跟踪:System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)在System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,Evidence) assemblySecurity,StackCrawlMark&stackMark,Boolean forIntrospection,Boolean suppressSecurityChecks)在System.Reflection.Assembly.Load(AssemblyName assemblyRef)at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path)at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName) ,NUnit.Core.Core.Tore上的NUnit.Core.ToreSuiteBuilder.TestSuiteBuilder(TestPackage包)的NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage包)中的NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName,String testName,Boolean autoSuites) NUnit.Core.Proxy的.Core.SimpleTestRunner.Load(TestPackage包)在System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object []的NUnit.Core.moreTestRunner.Load(TestPackage包)的NUnit.Core.ProxyTestRunner.Load(TestPackage包)上的TestRunner.Load(TestPackage包) System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg,Int32 methodPtr,Boolean fExecuteInContext)中的args,Object server,Int32 methodPtr,Boolean fExecuteInContext,Object []和outArgs)
在[0]处重新抛出异常:位于NUnit.Core的System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)的System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg).位于NUnit.ConsoleRunner.Runner.Main(String [] args)的NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions选项)的NUnit.Util.TestDomain.Load(TestPackage包)中的TestRunner.Load(TestPackage包)
警告:装配绑定日志记录已关闭.要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失.要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].
http://app1017-build.oy.gb.sportingindex.com:8080/job/TradingServices.DataAcquisition-Dev/ws/DataAcquisition/build.proj(86,5):错误MSB6006:"nunit-console.exe"已退出代码-100.完成建筑项目"(默认目标) - 失败.
建立失败.
请注意:我们已经恢复了我们对Hudson的构建,现在逐渐重新提交文件.我将报告这是怎么回事.不幸的是,尝试让这个问题涉及到几个脑袋无济于事.耻辱!
更新 我暂时没有回到这个页面,但看起来有很多不同的解决方案.如果我能把它们全部标记为答案我会!那些你在这里找到自己的方式的人应该对每个选项给予同等的信任.
The*_*ter 56
我在X64 pc上使用控制台应用程序遇到此问题,构建设置为x86并且仍然崩溃.我在控制台应用程序上进入了属性,在构建下我将我的平台目标从x86更改为任何CPU然后突然所有测试都运行并成功运行.
值得注意的是,Configuration Manager的平台字段可以"撒谎",并且实际上不必反映项目的属性实际配置的内容.我的配置管理器说"Common.dll"被构建为"任何CPU",但项目属性(真正重要的设置)是将其构建为"x86".

检查程序集的目标框架版本与nUnit test runner支持的相同.有关支持的运行时列表,请参阅runFile.exe.config.
此外,如果你有从FW 3到FW 4的megrate,他们有不同的运行时间(CLR是不同的).
当我针对Console或WPF应用程序进行测试时,我经常遇到这种情况.一些原因是
| 归档时间: |
|
| 查看次数: |
19791 次 |
| 最近记录: |