4

NUnit 2.6.1 をインストールし、Windows 7 x64 で簡単なテストを実行しようとしました。例外が発生します

不正な形式のプログラムをロードしようとしました。NUnit が現在実行されているバージョン (2.0.50727) より新しいバージョンの CLR でビルドされたアセンブリを読み込もうとしているか、64 ビット アセンブリを 32 ビット プロセスに読み込もうとしている可能性があります。

nunit.exe.config以下のように見えるので、かなり奇妙です

  <?xml version="1.0" encoding="utf-8" ?> 
- <configuration>
- <!-- 
   The GUI only runs under .NET 2.0 or higher. The
   useLegacyV2RuntimeActivationPolicy setting only
   applies under .NET 4.0 and permits use of mixed 
   mode assemblies, which would otherwise not load 
   correctly.


  --> 
- <startup useLegacyV2RuntimeActivationPolicy="true">
- <!--  Comment out the next line to force use of .NET 4.0 
  --> 
- <!--  <supportedRuntime version="v2.0.50727" /> 
  --> 
  <supportedRuntime version="v4.0.30319" /> 
  </startup>
- <runtime>
- <!--  Ensure that test exceptions don't crash NUnit 
  --> 
  <legacyUnhandledExceptionPolicy enabled="1" /> 
- <!--  Run partial trust V2 assemblies in full trust under .NET 4.0 
  --> 
  <loadFromRemoteSources enabled="true" /> 
- <!--  Look for addins in the addins directory for now 
  --> 
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <probing privatePath="lib;addins" /> 
  </assemblyBinding>
  </runtime>
  </configuration>
4

1 に答える 1

7

これは、NUnit の問題ではないようです。これは、ユニット テスト アセンブリが 32 ビット プロセス用にビルドされていないように思えます。ユニット テスト アセンブリが 32 ビット用にビルドされていることを確認してください。NUnit が 32 ビットで実行されていて、アセンブリが 64 ビットでビルドされている (または任意の CPU としてビルドされていない) 場合、この問題が発生します。呼び出し元のアプリケーションは、アセンブリに必要なビット深度を決定します。32 ビット プロセスで 64 ビット dll を使用することはできません。

私がこれに言及する唯一の理由は、あなたの質問があなたがテストを実行しようとしていると言っているからです。NUnit が正しく構成されていないと、起動すらしません。

于 2012-09-19T15:50:00.417 に答える