16

我知道我要问重复 的问题,但我的情况完全不同,我认为是因为当我使用程序的 nunit 工具进行单元测试时,在 NUnit 中会发生此错误

“NewTest.testtest(TestFixtureSetUp):SetUp:System.BadImageFormatException:无法加载文件或程序集'AUTO_REPAIR,Version = 1.0.0.0,Culture = Neutral,PublicKeyToken = null'或其依赖项之一。尝试加载格式不正确的程序。”

我想知道为什么这个工具会发生这个错误?我确信我在项目或任何测试用例中都没有错误。

请帮帮我。

这是此错误的图像

在此处输入图像描述

4

3 回答 3

31

There are two ways to solve this error

  1. Set Platform target to x86 for your project in visual studio(Right click on your solution and then go to properties then you will find build option and when you click on build you will find platform target). After you set your platform target to x86 try to do your unit test using nunit.

or

  1. Simply find out nunit-x86.exe in bin folder of your nunit folder and just run this exe file and you will not see any exception again :)
于 2013-05-22T04:53:39.703 回答
14

当您尝试在 64 位进程中加载​​ x86 程序集时会发生 BadFormatException,反之亦然。根据 NUnit 文档(http://www.nunit.org/index.php?p=nunit-gui&r=2.4.2),默认运行程序编译为 AnyCPU,这意味着它是 64 位机器上的 64 位进程。如果您的程序集之一或其任何依赖项直接针对 x86 编译,您将收到此异常。

切换到 Nunit-x86 或 Nunit-console-x86.exe,一切都应该正确加载。

于 2013-05-22T00:44:52.980 回答
12

附上 Ammar 的评论。不要仅仅依赖于 Configuration Manager 告诉您的活动平台。转到项目属性并在那里检查,那是项目的真正平台

在此处输入图像描述

于 2014-03-27T15:32:38.667 回答