Frage

Ich habe ein VB.Net Projekt, das einen Dritten DLL für die verwenden muss es auch eine Interop-Assembly. Also ich habe so etwas wie folgt aus:

Hummingbird.DM.Server.Interop.PCDClient.dll
PCDClient.dll

Ich habe versucht, den Verweis auf die Interop-Zugabe direkt in das Projekt, sondern auf Ausführen der Datei habe ich ein COM-Fehler nicht registriert.

So habe ich versucht, die Interop-Registrierung wie folgt:

gacutil /if "C:\....\Hummingbird.DM.Server.Interop.PCDClient.dll"

regasm "C:\....\Hummingbird.DM.Server.Interop.PCDClient.dll"

Auch nach VS Neustart der Baugruppe ist noch nicht sichtbar.

War es hilfreich?

Lösung

Ihr regasm Befehl zerstörte die Registrierungsschlüssel für den COM-Server. Sie werden es neu installieren. Verwenden Sie nur regasm auf eigene Faust [ComVisible] Code.

Ein Grund, warum Sie Probleme bei der Verwendung der Komponente haben können, darüber hinaus richtig einfach nicht installiert worden ist, ist, weil Sie versuchen, diese auf einem System 64-Bit-Betriebes laufen. Und die Komponente 32-Bit, bei weitem der häufigste Fall. Sie benötigen eine App zu laufen, es zu verwenden, um der Lage sein, in 32-Bit-Modus zu erzwingen. In der VB.NET IDE, die mit Project + Eigenschaften, Registerkarte Kompilieren, nach unten scrollen, Advanced Kompilieroptionen, festlegen Ziel CPU auf "x86".

getan

Das ultimative Werkzeug zur Fehlerbehebung für Probleme wie diese ist ProcMon Dienstprogramm SysInternals. Es zeigt Ihnen, wie COM wird die HKLM \ Software \ Classes \ CLSID Schlüssel für die DLL zu laden suchen.

Andere Tipps

Sie sind die Registrierung der Interop, aber (wie die Fehlermeldung schon sagt) Sie haben die nicht registriert COM-DLL. Versuchen Sie folgendes:

regsvr32 pdcclient.dll
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top