例外処理-DataTest.exeでタイプ「System.BadImageFormatException」の未処理の例外が発生しました



Exception Handling An Unhandled Exception Typesystem



例外処理-DataTest.exeでタイプ「System.BadImageFormatException」の未処理の例外が発生しました

サードパーティのdllを参照する必要があるテストコンソールアプリケーションを作成しました。プログラムを実行してサードパーティのdllにクラスのインスタンスを作成すると、例外が常に報告され、タイプ 'System.BadImageFormatException'の未処理になります。例外はDataTest.exeで発生しました。その他の情報: 'ファイルまたはアセンブリxxxまたはその依存関係の1つを読み込めませんでした。間違ったフォーマットでプログラムをロードしようとしました。以下に示すように:
画像



一般的に、この種の例外は、ターゲットプログラムのターゲットプラットフォームとその依存関係の1つのターゲットコンパイルプラットフォームとの間の不整合によって引き起こされ、すべてのプロジェクトが同じターゲットプラットフォーム(X86、X64、またはAnyCPU、vs2013のデフォルト)に変更されますAnyCPUへ)問題をコンパイルして解決します。

私が遭遇したこの問題は、サードパーティのdllのコンパイルプラットフォームがx86であり、X64およびAnyCPUで実行できなかったことが原因である可能性があります。ターゲットプラットフォームをx86に変更すると、問題は解決します。



具体的な操作方法:

サードパーティのdllを参照するプロジェクトの名前を右クリックして[プロパティ]を選択し、[プロパティの設定]ウィンドウで[生成]を見つけ、[ターゲットプラットフォーム]を対応するプラットフォームに変更して保存します。
画像

さらに、Webプロジェクトの場合は、プログラムをサーバーに展開した後、アプリケーションプールで[32ビットアプリケーションを有効にする]項目をtrueに設定する必要もあります。以下に示すように:
画像