9

私は、VS 2003 で開発された別のプログラムによってロードされる DLL を VS 2005 で作成しました。そのプログラムが私の DLL をロードしようとすると、System.BadImageFormatException: The format of the file 'Foo.dll' is invalid.

SO と Google を検索したところ、.NET のバージョンが異なることが原因のようです。私の質問は次のとおりです。これを修正するにはどうすればよいですか?

(VS 2003 で開発したプログラムを修正することはできません。)

4

3 に答える 3

17

CLR の 64 ビット バージョンを実行していて、32 ビットのみとマークされたアセンブリを読み込もうとしたときに、このエラーが発生しました。私の場合の特定のアセンブリは、ODP.NET の一部として提供される Oracle.DataAccess.dll でした。

于 2009-05-05T17:31:47.540 に答える
14

解決策: IIS7 を使用している場合は、Web サイトの [特定のアプリケーション プール] で [詳細設定] を右クリックし、[32 ビット アプリケーションを有効にする] で [True] を選択します。それはうまくいくはずです。

于 2010-08-03T18:53:03.073 に答える
7

VS2003 プロジェクトが使用するのと同じ .Net バージョンで VS2005 プロジェクトをコンパイルします。または、VS2003 プロジェクトのサイズに応じて、リフレクターを書き直します。これは、いくつかのあいまいな理由で利用可能な VSS バージョンがこれ以上ない、ここのプロジェクトの一般的な方法です。

于 2009-05-05T17:54:13.100 に答える