1. ホーム
  2. c#

[解決済み] ファイルまたはアセンブリを読み込めませんでした ... 不正なフォーマットでプログラムをロードしようとしました (System.BadImageFormatException)

2022-03-20 12:38:20

質問

2つのプロジェクトがあります。 ProjectAProjectB . ProjectB はコンソールアプリケーションで ProjectA . 昨日はすべてうまくいっていたのですが、今日になって突然 ProjectB こんなのが出るんです。

BadImageFormatException は処理されませんでした。 :
ファイルまたはアセンブリ 'ProjectA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つをロードできませんでした。不正なフォーマットでプログラムをロードしようとしました。

どちらも通常のプロジェクトで、他の非.Netプロジェクトには一切依存していません。 どちらも完全に.Netです。ネイティブコードもなければ、P/Invokeもありません。 他のプロジェクトでは ProjectA で、それでも問題なく動作します。

試してみたこと

  • 両方のプロジェクトが、quot;Any CPU,"に設定されていることを確認します。 ビルド のチェックボックスにチェックを入れてください。 それらは
  • 両方のプロジェクトが同じターゲットフレームワーク用であることを確認します。 (.Net 4.0 クライアントプロファイル) .
  • ProjectB --> References --> ProjectA --> Properties で、以下を確認してください。 "ローカルをコピー"。 に設定されています。 "True"。 _ (ProjectA.dllが正しくコピーされていることを確認しました)
  • ソリューションのクリーン/リビルドを行います。 さらに、両方のプロジェクトの /bin と /obj フォルダーを手動で削除してみました。
  • Visual Studioを再起動します。 コンピュータを再起動する。
  • リポジトリの全く新しいコピーをチェックアウトします。

しかし、まだ同じエラーが出ます。 何をしたらこうなるのか、どうしたら直るのか、さっぱりわかりません。 何か思い当たることはありますか?

解決方法を教えてください。

32ビットと64ビットのコンフリクトが発生しているのは確かです。メインプロジェクトが32ビットに設定され、参照するクラスが64ビットに設定されている可能性があります。以下を参照してください。 このSOの質問 こちらも . この2つの間で、あなたの問題を解決することができるはずです。