Dll 加载exe时出现nunit问题

Dll 加载exe时出现nunit问题,dll,nunit,load,exe,Dll,Nunit,Load,Exe,以下情况: tests.dll包含一组单元 测验 program.exe包含一些要测试的文件 班级 tests.dll包含使用 program.exe中的类 因此tests.dll有一个引用 关于program.exe nunit-agent.exe加载tests.dll,然后加载program.exe -->基本上,在nunit环境中,program.exe就像dll一样使用。 “误用”exe作为dll是可能的,因为我刚刚编写了一个小测试应用程序,它也引用program.exe并使用其中定

以下情况:

  • tests.dll包含一组单元 测验

  • program.exe包含一些要测试的文件 班级

  • tests.dll包含使用 program.exe中的类

  • 因此tests.dll有一个引用 关于program.exe

  • nunit-agent.exe加载tests.dll,然后加载program.exe

-->基本上,在nunit环境中,program.exe就像dll一样使用。 “误用”exe作为dll是可能的,因为我刚刚编写了一个小测试应用程序,它也引用program.exe并使用其中定义的一些类,并且运行良好

但在nunit中,一旦加载使用program.exe中定义的代码的测试,我就会收到一个BadImageFormatException

这是nunit反射机制中的一个缺陷还是有原因的

thx
tobi

如果为x86编译.exe,并且您正在64位操作系统上运行测试,则可能会发生这种情况。如果是这种情况,您可以选择使用nunit-x86.exe运行测试。

在我的情况下,所有操作都是在同一台64位windows 7计算机上完成的。。。因此,这似乎不是问题所在。当您创建一个新的.exe项目时,默认的VisualStudio2010以x86平台为目标。您的.exe可能是为x86编译的,这可能会导致您的问题。检查VS中.exe的项目设置。这修复了我的类似问题。我在项目属性中将导致nunit问题的EXE从x86更改为AnyCpu,然后它工作了。哇。谢谢你!我在.NET4.0中有一个“任意cpu”单元测试库,用于测试“x86.NET2.0exe”。(因此我可以使用更好的模拟工具等。