64ビットのWindowsOS上でNUnitがテストプロジェクトをロードできない

NUnitでテストプロジェクトをロードすると、以下のようなエラーになることがあります。

Test load failed!
You may be attempting to load an assembly built with a later
version of the CLR than
the version under which NUnit is currently running (2.0.50727) or
trying to load a 64-bit assembly into a 32-bit process.

System.BadImageFormatException : ファイルまたはアセンブリ
'YourTests, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null'、またはその依存関係の1つが読み込めません
でした。間違ったフォーマットのプログラムを読み込もうとしまし
た。

For further information, use the Exception Details menu item.

再現条件

これは以下の条件で発生します。

  • PCが64ビットOS
  • VisualStudioで、プラットフォームターゲットをx86にしてビルドしている
  • スタートメニューから「NUnit」を選んで起動している。

問題の状況

64ビット環境にNUnitをインストールした場合、スタートメニューの「NUnit」は64ビット版のnunit.exeを起動するようになっています。
その後、テストプロジェクトをロードしようとすると、dllがx86でビルドされていると、アセンブリのロードに失敗してエラーになっている、という状態です。

解決方法

実は、NUnitのインストール先フォルダーには、32ビット版のNUnitが入っています。そちらを起動すれば問題なくテストプロジェクトをロードできます。

C:\Program Files (x86)\NUnit 2.6\bin\nunit-x86.exe

ちなみにこの例外は、参照している.NET Frameworkのバージョンが異なるアセンブリーをロードした時や、32ビット←→64ビットで参照しようとしたときに良く見るので、そんな時はプロジェクトのプラットフォームターゲットや参照先のDLLのプラットフォームターゲットを確認すると、だいたい解決します。

以上