VS10オブジェクトブラウザにリストされていないアセンブリ
-
11-10-2019 - |
質問
私は、InteropアセンブリもあるサードパーティのDLLを使用する必要があるVB.NETプロジェクトを持っています。だから私はこのようなものを持っています:
Hummingbird.DM.Server.Interop.PCDClient.dll
PCDClient.dll
プロジェクト内のインターロップへの参照を直接追加しようとしましたが、ファイルを実行すると、登録されていないエラーがありませんでした。
それで、私は次のようにインターナットを登録しようとしました:
gacutil /if "C:\....\Hummingbird.DM.Server.Interop.PCDClient.dll"
regasm "C:\....\Hummingbird.DM.Server.Interop.PCDClient.dll"
VSを再起動した後でも、アセンブリはまだ表示されていません。
解決
Regasmコマンドは、COMサーバーのレジストリキーを破壊しました。再インストールする必要があります。独自の[comvisible]コードでのみレジャムを使用します。
コンポーネントを使用するのに問題があるかもしれない理由の1つは、それを超えて正しくインストールされていないだけで、64ビットオペレーティングシステムでこれを実行しようとしているためです。コンポーネントは32ビットで、最も一般的なケースです。使用できるように、アプリに32ビットモードで実行させる必要があります。 VB.Net IDEでは、プロジェクト +プロパティ、コンパイルタブ、スクロールダウン、アドバンスコンパイルオプション、ターゲットCPUを「x86」に設定して行われます。
このような問題の究極のトラブルシューティングツールは、SysinternalsのProcmonユーティリティです。 COMがHKLM Software classes clsIDキーを使用して、DLLを検索する方法を示します。
他のヒント
インターナットを登録していますが、(エラーメッセージが示唆するように)com dllを登録していません。これを試して:
regsvr32 pdcclient.dll
所属していません StackOverflow