0

私は奇妙なmsiを持っています!!!

32 ビット msi (target=x86) を 64 ビット マシンにインストールしましたが、一部の COM dll の読み込みに失敗し、「正しくない形式のプログラムを読み込もうとしました。(HRESULT からの例外) : 0x8007000B)」というエラーです。

同じ COM dll が開発環境の 64 ビット マシンで正常に動作することに気付きました。msi でインストールされた COM に問題がある理由がわかりません。

よろしく、

ギリッシュ

4

2 に答える 2

0

x86 ライブラリをロードするには、C# プログラム (exe プロジェクト) を x86 (32 ビット) としてコンパイルする必要があります。

于 2012-05-14T16:03:55.033 に答える
0

InstallShield を使用して MSI を作成している場合、レジストリにマージされた COM 情報が正しい場所にある場合とない場合があります。InstallShield は通常、インストーラーのビルド中にレジストリ情報を抽出し、インストール時にそれをレジストリにマージするため、これを再確認しないと、正しい情報が得られない場合があります。

32 ビット コンポーネントの COM 情報が Wow6432Node キーの下にのみ存在するようにする必要があります。

于 2012-05-14T17:27:57.543 に答える