Win7 x64 マシンでアプリケーションを開発しています。
外部の .dll ファイルを呼び出すコードがいくつかあります。.dll は 32 ビット マシン用に作成されました。私が抱えている問題は、Debug
構成のデバッガーでアプリを実行すると、正常に動作することです。に切り替えるとすぐにRelease
、.dll 呼び出しを行うメソッドへのすべてのエントリが失敗します。
An unhandled exception of type 'System.BadImageFormatException' occurred in MyCool.exe
Additional information: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
と の両方Release
のDebug
構成は同じで、アプリケーションは x86 用にビルドされています。この問題は、Windows 7 マシンでのみ発生します。XP を実行しているお客様は問題ありません。確かに、XP x64 を実行している顧客はいないので、それを確認できませんでした。
これが私のソリューション構成のイメージです。
Platform:
オプションをすべての可能な組み合わせに変更しましたが、まだ機能していません。設定で隠れているものはありDebug
ますか?
編集:私はこれを理解しましたが、私は本当に問題を理解していません.
Build
プロジェクト プロパティの各プロジェクトのタブ ( Compile
VB プロジェクトのタブ)Target CPU
で、AnyCPU ではなく x86 に設定する必要があります。
これは別の質問かもしれませんが、なぜですか?ソリューション全体のプラットフォームを x86 に設定することと、プロジェクトごとにターゲット CPU を x86 に設定することの違いは何ですか。また、上の画像では、フィールドの目的は何Platform
ですか??