c# - 如果 x86 构建,则 Nunit.exe 无法在 Vista 64 位上运行

标签 c# .net .net-2.0 nunit 64-bit

我使用的是 64 位 Vista,我有一个使用 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 fileName,String codeBase,Evidence assemblySecurity,Assembly locationHint,StackCrawlMark& stackMark,Boolean throwOnFileNotFound,Boolean forIntrospection) 在 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,Evidence assemblySecurity,StackCrawlMark& stackMark,Boolean forIntrospection) 在 System.Reflection.Assembly.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark& stackMark,Boolean forIntrospection) 在 System.Reflection.Assembly.Load(字符串 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(测试包包) 在 NUnit.Core.TestSuiteBuilder.Build(测试包包) 在 NUnit.Core.SimpleTestRunner.Load(测试包包) 在 NUnit.Core.ProxyTestRunner.Load(测试包包) 在 NUnit.Core.ProxyTestRunner.Load(测试包包) 在 NUnit.Core.RemoteTestRunner.Load(测试包包) 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object[] args,对象服务器,Int32 methodPtr,Boolean 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(测试包包) 在 NUnit.Util.TestDomain.Load(测试包包) 在 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! !

谢谢大家

关于c# - 如果 x86 构建,则 Nunit.exe 无法在 Vista 64 位上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/208985/

相关文章:

c# - 使用 Thinktecture Identity Server 时保留 OAuth2 不记名 token

.net - 如何在 Entity Framework 中查询空值?

.net - new KeyValuePair<UInt32, UInt32>(i, j).GetHashCode();重复率高

.net - 我应该如何确定哪些引用必须是 "copied locally"?

c# - 将包含整数的字符串解析为 List<int>

vb.net - 尝试在 vb.net 2005 中将字符串转换为日期时间格式

c# - Microsoft 翻译 API 无法正常工作

c# - 不调用 ASP MVC Controller

c# - 如何测试一个没有返回值的函数?

c# - 我可以使用 linq 从 asp .net DropDownList.Items 中删除项目吗?