私は自分のアプリをx86としてコンパイルしました。 私のアプリケーションでVB6 COM Interopを使用しています。 「Interop Interp type = Yes」、「Isolated = No」の参照を設定しました。埋め込みInteropクライアントマシンのREGDB_E_CLASSNOTREGエラー
クライアントマシンには何もインストールする必要はありません。「Interop.MyDLL.dll」をインストールする必要はありません。インストールすることなく魔法のように動作します。
これは私のテストコンピュータで簡単にテストできますが、うまく動作します。
今、クライアントマシンで、DLLにアクセスしようとすると、エラー "System.TypeInitializationException、クラスが登録されていない、HRESULT:0x80040154(REGDB_E_CLASSNOTREG)"がスローされます。
私は、アプリケーションを再コンパイルして展開した後に発生しました。それ以前はうまくいきました。
ここでは何が原因でしょうか?
interop dllを登録する必要はありません(COMコンポーネントではなく、メタデータ定義のみ)。しかし、VB6 COMコンポーネント(dll、ocxなど)を登録する必要があります。魔法はありません。 –
@SimonMourier OMG、そうです。それは何年か前にテストマシンでSysWow64にインストールしたので、必要なことに気がつかなかった。どうもありがとうございます! – tmighty
おそらくあなたはあなたのコメントを返信することができます。それから私のような他の人形が答えを見つけることができます。 – tmighty