2010-06-09 15 views
28

Ich bin den Aufbau einer GIS-Anwendung, aber wenn ich den Code ausführen es gibt mir diesen FehlerHRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

System.Runtime.InteropServices.COMException was unhandled Retrieving the COM class factory for component with CLSID {FBF5715D-A05D-11D4-A64C-0008C711C8C1} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Auch in den Projekteigenschaften die Option für Register Für COM-Interop deaktiviert ist.

+1

ich mit beiden Lösungen versucht, unten ohne Erfolg vorgeschlagen. Hat jemand eine andere Idee? –

Antwort

17

Wenn Sie sich die Nachricht ansehen, klingt sie wie eine oder mehrere der Komponenten, auf die Sie verweisen, oder eine oder mehrere ihrer Abhängigkeiten sind nicht richtig registriert.

Wenn Sie wissen, welche Komponente es ist, können Sie regsvr32.exe verwenden, um es zu registrieren, öffnen Sie einfach eine Eingabeaufforderung, gehen Sie in das Verzeichnis, wo die Komponente ist und geben Sie regsvr32 filename.dll (vorausgesetzt, es ist eine DLL), wenn es funktioniert, versuchen Sie es um den Code erneut zu starten sonst kommst du hier mit dem Fehler zurück.

Wenn Sie nicht wissen, welche Komponente es ist, versuchen Sie die GIS-Software erneut zu installieren/reparieren (ich nehme an, Sie haben einige GIS-Software installiert, die die Komponente enthält, die Sie verwenden möchten).

+0

thanx viel es funktioniert :) ich registrierte es und nw es funktioniert gut .. yeah du hast Recht, ich war mit der GIS-Komponente in meiner App. Danke nochmal für eure Hilfe – user362130

+0

Ich habe eine .exe (nicht .dll). Von der Visual Studio Cmd-Eingabeaufforderung (wo sich die .exe befindet) lief ich "MyProgram.exe/regsvr" – robor78

37

Dies könnte auch ein Problem beim Erstellen des Codes mit einer 64 bit Konfiguration sein. Sie können versuchen, x86 als die Build-Plattform auszuwählen, die dieses Problem beheben kann. Dazu Rechtsklick auf die Lösung und wählen Sie Configuration Manager Von dort aus können Sie die Platform des Projekts ändern, um die 32-Bit-DLL zu x86

+0

Ich hatte das gleiche Problem in umgekehrter Reihenfolge - Ich brauchte ein 64-Bit-Projekt, 'Any CPU' und' x32' nicht Arbeit. –

+0

Ich wollte nur Danke sagen. Das hat mir geholfen, ein Upgrade-Projekt richtig zu machen. – impr0t

+0

Ich konnte nicht glauben, dass der Wechsel von "Any CPU" zu "x86" den Unterschied machen würde, aber es hat es getan! –

Verwandte Themen