System.BadImageFormatException

すでに作成したソリューションを必要に迫られて再度構成し直したところ、NUnitでSystem.BadImageFormatExceptionがスローされるという現象が発生しました。ビルドは正常に終了しているし、参照も正常に登録されているので何でだろうと不思議に思い調べてみました。

そもそもSystem.BadImageFormatExceptionは見慣れない例外です。msdnによると次の通りの説明がありました。

DLL または実行可能プログラムのファイル イメージが無効である場合にスローされる例外。

BadImageFormatException クラス

その他、Googleで検索したところ、参照するファイルの内容が実行できない場合や実行できてもCLRで読めない場合などにスローされるとのこと。

ただ、VisualStudioでコンパイルしているのでそんなことはないのにと思っていたのですが、一つだけ思い当たることがありました。プラットフォームターゲットです。

Windows7から64bitに変更したこともあり、そのままではエディットコンティニューが使用できないためいつもプラットフォームターゲットを変更しているのですが、この部分がNUnit側とクラスライブラリ側で一致していないため例外がスローされていたようです。

image

この設定を双方であわせることで無事問題は解決しました。