Ich habe meine App als x86 kompiliert. Ich verwende ein VB6 COM Interop in meiner App. Ich habe den Verweis auf "Einbetten Interop-Typ = Ja", "Isolierte = Nein" festgelegt.Embedded Interop REGDB_E_CLASSNOTREG Fehler auf Client-Rechner
Ich brauche nichts auf dem Client-Rechner installieren, nicht einmal die "Interop.MyDLL.dll", es funktioniert magisch, ohne etwas zu installieren.
Ich kann dies leicht auf meinem Testcomputer testen, es funktioniert gut.
Nun wird auf einem Client-Computer der Fehler "System.TypeInitializationException, Klasse nicht registriert, HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)" ausgelöst, wenn ich versuche, auf die DLL zuzugreifen.
Es trat auf, nachdem ich die App neu kompiliert und deployed. Vorher hat es gut funktioniert.
Was könnte der Schuldige hier sein?
Sie müssen die Interop-DLL nicht registrieren (es handelt sich nicht um eine COM-Komponente, sondern nur um Metadatendefinitionen). Aber Sie müssen die VB6 COM-Komponente (dll, ocx, etc.) registrieren. Es gibt keine Magie. –
@SimonMourier OMG, du hast Recht. Die Sache war, dass ich es vor einiger Zeit auf SysWow64 auf meiner Testmaschine installiert habe, also habe ich nicht bemerkt, dass ich es brauchte. Ich danke dir sehr! – tmighty
Vielleicht könnten Sie Ihre Antwort kommentieren. Dann können andere Dummies wie ich die Antwort finden. – tmighty