ファイルまたはアセンブリを読み込めませんでした... 不正な形式のプログラムを読み込もうとしました (System.BadImageFormatException) 質問する

ファイルまたはアセンブリを読み込めませんでした... 不正な形式のプログラムを読み込もうとしました (System.BadImageFormatException) 質問する

プロジェクトが 2 つあり、ProjectAProjectBProjectB依存するコンソール アプリケーションですProjectA。昨日はすべて正常に動作していましたが、今日実行すると突然ProjectB次のメッセージが表示されます。

BadImageFormatException が処理されませんでした:
ファイルまたはアセンブリ 'ProjectA、バージョン = 1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムを読み込もうとしました。

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

私が試したこと:

  • 両方のプロジェクトが「任意の CPU」に設定され、ビルドチェックボックスがオンになっていることを確認します。 オンになっています。
  • 両方のプロジェクトが同じターゲット フレームワーク(.Net 4.0 クライアント プロファイル)用であることを確認します。
  • ProjectB --> 参照 --> ProjectA --> プロパティで、 「ローカルにコピー」が「True」に設定されていることを確認します_ (ProjectA.dll が正しくコピーされていることを確認しました)
  • ソリューションをクリーン/リビルドします。両方のプロジェクトの /bin フォルダーと /obj フォルダーを手動で削除することも試みました。
  • Visual Studio を再起動します。コンピューターを再起動します。
  • リポジトリの完全に新しいコピーをチェックアウトします。

しかし、まだ同じエラーが発生します。このエラーの原因が何なのか、また、これを修正する方法がわかりません。何かアイデアはありますか?

ベストアンサー1

32ビットと64ビットの競合が発生していると思います。メインプロジェクトは32ビットに設定されていますが、参照先のクラスは64ビットに設定されている可能性があります。以下を確認してください。このSOの質問そしてこれも二人で協力すれば、問題は解決できるはずです。

APP は 64 ビットで実行するように設定されていますが、DLL は 32 ビットで実行されています。これを軽減するには、IIS >> アプリケーション プール >> 詳細設定 >> 32 ビット アプリケーションの有効化に移動し、true に設定します。

おすすめ記事