質問

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を選択します。動作するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top