2012-05-02 7 views
2

私はlog4netのラッパークラスを作成しました。このラッパークラスは、asp.net Webアプリケーションで正しく動作します。そして今、私はNUNITを使ってラッパークラスのメソッドをテストしようとしています。 ラッパークラスのプロジェクトでは、log4net DLLの "Copy Local"をTrueに設定しました。 NUNITプロジェクトとラッパークラスの両方がlog4net 1.2.10.0を使用しています。は、nunitでlog4netラッパークラスをテストできません。

このラッパークラスは、別のasp.net Webプロジェクトと正しく動作しますが、nunitテストプロジェクトではどのように動作しません。

私は基本的なテストを実行しようとすると、私は次の例外

System.BadImageFormatException取得:ファイルまたはアセンブリ 「log4netのをロードできませんでした、バージョン= 1.2.10.0、ニュートラル文化=、 なPublicKeyTokenを= 692fbea5521e1304 'またはその依存関係の1つ。 不正な形式のプログラムを読み込もうとしました。

私はUPDATE

ちょうどlog4net.dllバージョン1.2.11.0で私のラッパーとテストプロジェクトを更新し、すべてのものは、魔法のように動作を開始しVS2010

ためReSharperの内でこれらのテストを実行しています! !私はこの最新のバージョンが1.2.10.0が失敗したこの問題をどのように修正するのか分かりません

+4

あなたは –

+0

は私の質問を更新したx86アーキテクチャまたはその逆でのx64を使用してのように、間違ったイメージをロードしています。どのようにlog4net.dll asp.net Webプロジェクトで動作しますか?私にお知らせください。 –

+0

テストプロジェクトからlog4netへの参照を追加しても、それでもエラーは出ますか? –

答えて

3

64ビットシステムに32ビットDLLをロードしているようです。 32ビットアーキテクチャをターゲットにしたテストDLLをビルドします。

プロセスは、既存の問題で説明されていますUsing a 32 bit dll on a 64 bit machine

+0

なぜ私のasp.net Webアプリケーションでlog4net(32bit DLL)を持つこのラッパークラスが動作しますか? –

+0

多分、32ビット互換性がIISアプリケーションプール(32ビットDLLを動作させる)で有効になっているかもしれません。あるいは、log4netはそのビットで正常ですし、64ビットチェーンにダメージを与える別のDLLまたはアプリケーションがあります。別の環境をテストするために、たとえばNUnitで同じ結果を得ましたか? –

+0

その作業は今、私の更新を確認してください。 –

関連する問題