0

このアプリケーションはC#.Net 4であり、アンマネージ32ビットDLLを呼び出します。正常に動作しており、多くのマシン(主に64ビットWindows 7)を実行しています。ただし、最近、アンマネージDLLが呼び出されるとすぐに、プログラムがBadImageFormatExceptionでトラップする特定のユーザーに遭遇しました。

BadImageFormatException:不正な形式のプログラムを読み込もうとしました。(HRESULTからの例外:0x8007000B)

私は次のことをしました:

  1. インストールとファイルが正しいことを確認しました
  2. 彼の.Netランタイムアップデートを動作中のマシンに可能な限り一致させました
  3. すべてのプロジェクトのプラットフォームターゲットがx86に設定されていることを確認しました
  4. 動作するデバッグビルドを実行します

私はウィットの終わりに近づいています。助言がありますか?このタイプの問題の原因となる特定の.Net4アップデートまたはホットフィックスはありますか?

4

1 に答える 1

0

問題は、ユーザーのマシン上のシステムファイルの置き忘れ/無効であることが判明しました。これは、特定のアプリケーションを起動するときに、「アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じます」と表示される場合があります。

この問題は、VisualStudioに必要なさまざまなシステムdllの32/64ビットの不一致が原因でした。どういうわけか、必要なdllは、ロードできなかった64ビットバージョンに置き換えられました。

動作しているマシンから下記のdllを置き換えると、問題が解決します。

c:\ Windows \ SysWOW64 \ msvcp100.dll c:\ Windows \ SysWOW64 \ msvcp100d.dll c:\ Windows \ SysWOW64 \ msvcr100.dll c:\ Windows \ SysWOW64 \ msvcr100_clr0400.dll c:\ Windows \ SysWOW64 \ msvcr100d.dll

http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/96035692-9a50-40d4-a7d3-48bda87d11ec

于 2013-01-18T01:01:04.027 に答える