0

他の誰かがこの問題を抱えているかどうかわからない。

Windowsフォームライブラリコントロールを作成しようとしています。x86環境で実行するにはコントロールが必要です。したがって、私が最初に行うことは、プロジェクトのプロパティに移動し、プラットフォームターゲットをx86に切り替えることです。

アプリケーションを実行しようとすると、作成しようとしているアセンブリを参照し、次のような素敵なエラーメッセージが表示されます。間違った形式のプログラムを読み込もうとしました。

x86でコントロールを作成しようとしているだけで、参照もコードも追加していません。

VS2012でWindows764ビットマシンを使用して、.NET4.5でアプリを作成しようとしています。x86のみのOCXを使用しているため、x86でプロジェクトを実行する必要があります。

誰かがこれに遭遇しましたか?

4

1 に答える 1

1

プロジェクトのプロパティに移動し、プラットフォームターゲットをx86に切り替えます

まあ、それはうまくいった。紛らわしいCOM例外(通常、いくつかの理由が考えられる「クラスが登録されていません」)の代わりに、ライブラリを間違って使用していることを通知する初期の.NET例外が発生します。

ライブラリプロジェクトをテストするには、ライブラリプロジェクトへの参照を持つEXEプロジェクトを作成する必要がありました。あなたがするのを忘れたのは、そのEXEプロジェクトのプラットフォームターゲット設定を変更することです。EXEプロジェクトだけが、プロセスのビットネスを決定できるため、これは重要です。それは最初にロードされるものであり、ライブラリプロジェクトには何の意味もありません。選択を拒否することしかできません。BadImageFormatExceptionはその拒否です。

したがって、EXEプロジェクトのプラットフォームターゲット設定もx86に変更する必要があります。

于 2013-01-31T00:55:12.373 に答える