Unit testing Resharper单元测试运行程序无法在版本中运行测试(System.BadImageFormatException)

Unit testing Resharper单元测试运行程序无法在版本中运行测试(System.BadImageFormatException),unit-testing,resharper,badimageformatexception,Unit Testing,Resharper,Badimageformatexception,使用VS 10.0.40219.1,Resharper 8.2.1 我已经切换到一个发布版本,并忘记了它。下次我尝试运行任何单元测试时,我得到了错误 “Resharper单元测试运行程序无法运行测试”System.BadImageFormatException:无法加载文件或程序集的HearThis版本。。。 最终我发现我处于发布模式,并切换回调试,在那里我所有的测试都运行得很好。至少目前,我并不太担心需要在发布模式下运行单元测试,但很难说我永远不会需要这样做。问题是为什么它失败了。在TeamC

使用VS 10.0.40219.1,Resharper 8.2.1 我已经切换到一个发布版本,并忘记了它。下次我尝试运行任何单元测试时,我得到了错误 “Resharper单元测试运行程序无法运行测试”System.BadImageFormatException:无法加载文件或程序集的HearThis版本。。。
最终我发现我处于发布模式,并切换回调试,在那里我所有的测试都运行得很好。至少目前,我并不太担心需要在发布模式下运行单元测试,但很难说我永远不会需要这样做。问题是为什么它失败了。在TeamCity构建服务器上,它成功地进行了发布构建并运行了测试。我知道我以前在发布模式下运行过测试,但我只是尝试了另一个项目,它也以同样的方式失败。Resharper的测试运行程序中是否有新的bug,或者是否有什么东西被损坏、删除了?

A
BadImageFormatException
通常是由于与32/64位设置混淆所致。确保测试程序集与正在测试的程序集具有相同的位精度。例如,如果您在64位计算机上,并且任何程序集都需要32位(可能您正在对32位本机dll进行p/调用),那么测试程序集也应该是32位的


ReSharper在外部进程中运行测试,并支持32/64位。它使用测试程序集的设置来决定运行哪个版本的外部进程。

我知道32/64位的问题,但我没有意识到(或至少没有考虑到):a)对于发布/调试配置,这可以设置为不同的b)为测试选择任何CPU都将构建64位DLL(测试中的DLL被显式设置为在调试和发布中构建x86)c)我“确定”我已经在发布模式下为我尝试此操作的另一个项目运行了测试,但显然“确定”与“正确”并不相同