System.BadImageFormatException:.NETバージョンの不一致を修正する方法は?
-
05-07-2019 - |
質問
VS 2003で開発された別のプログラムによって読み込まれるdllをVS 2005で作成しました。そのプログラムがdllを読み込もうとすると、 System.BadImageFormatException:ファイルの形式 'Foo .dll 'は無効です
。
SOとGoogleを検索しましたが、.NETの異なるバージョンが原因であるようです。私の質問は次のとおりです。どうすれば修正できますか?
(VS 2003で開発されたプログラムは変更できません。)
解決
VS2003プロジェクトが使用するのと同じ.NetバージョンでVS2005プロジェクトをコンパイルします。 または、VS2003プロジェクトのサイズに応じて、リフレクターを作成して書き換えます。これは、ここでのプロジェクトの一般的な慣行であり、あいまいな理由で使用可能なVSSバージョンがもうありません。
他のヒント
CLRの64ビットバージョンを実行していて、32ビットのみとマークされたアセンブリをロードしようとしたときに、このエラーが発生しました。私の場合の特定のアセンブリは、ODP.NETの一部として提供されるOracle.DataAccess.dllでした。
解決策:IIS7を使用している場合、Webサイトの特定のアプリケーションプールで右クリック/詳細設定を選択し、32ビットアプリケーションの有効化でTrueを選択します。動作するはずです。
所属していません StackOverflow