2012年4月29日日曜日

64bit OS でのエラー

リリースまであと少しという時に、Visual Studio 2010 C# で作成したアプリケーションでエラーが発生した。エラーがおきるのは64bitのOSのみ。
おかしいな。気をつけたはずなのに。


Just-In-Time (JIT) デバッグを呼び出すための詳細については、
ダイアログ ボックスではなく、このメッセージの最後を参照してください。

************** 例外テキスト **************
System.BadImageFormatException: ファイルまたはアセンブリ '*******, Version=***, Culture=neutral, PublicKeyToken=*****'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。


該当のアプリケーションは32bitでも64bitでも同一モジュールで動作させる。
なのでプラットフォーム ターゲットを、たぶんこれで正しいだろうと AnyCPU にした。(テストは一通り済ませた後になんとなく見直した後に AnyCPU になってないのが気になって変更した)
起動し最初の画面が表示されることを確認。
その後、たまたま64bitのOSで動かしたところエラーが発生した。


原因はというと、エラーが発生した画面で使用しているアセンブリが、プラットフォーム(x86, x64)に依存していたため。
これを組み込んだならば32bit・64bit両方に対応させるにはプラットフォーム ターゲットをx86にすべきだった。

0 件のコメント:

コメントを投稿