ClassFactory cannot supply requested class 0 x 80040111 Fehler: -2147221231
Mithilfe von Visual Studio 2008 habe ich zum ersten mal mit diesem, wenn Sie versuchen, öffnen Sie ein standard-Dialogfeld Datei speichern in visual basic. So weit ich gearbeitet habe, um es nach der erfolglosen Suche. Jetzt finde ich, dass jede Aktion, die dazu führen, dass ein speichern - /öffnen-dialog (zB. Strg-O") auch nicht. Ich habe gesucht, mehr und immer noch nicht wissen, wie es zu lösen ist.
Sachen, die ich weiß:
Es ist kein Visual Studio Fehler, es kann anscheinend vorkommen, in eine beliebige Anzahl von anderen Anwendungen (das ist der Grund, warum die Suche für die ist es ärgerlich)
Es ist entweder .NET-oder COM-bezogene, ich habe versucht neu zu installieren, alle .NET mit kein Glück, und ich habe noch nie gemuckt, um mit COM immer, ich weiß wirklich nicht einmal wissen, was es ist.
Etwas fehlt, verlegt werden, oder es könnte sein, DLL-version Probleme.
Ich nicht wirklich wollen befassen sich mit der deinstallation von VS2008 oder in MS Office (als ein Ergebnis fand ich vorgeschlagen) oder eine andere große Anwendung.
- Du hast eine mis-Verhalten-shell-Erweiterung. Start whacking Sie mit Hilfe des SysInternals' AutoRuns Dienstprogramm.
- Hast du dir schon mal dieses Problem behoben? Ich bin plötzlich schlagen Sie das gleiche problem in VS 2008. Es passiert mir, wenn ich versuche auf Vorhandenes Element Hinzufügen..., um einem Projekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, jemand, irgendwo versucht zu CoCreate einige Objekt, das (denkt nach) es braucht, um seine Arbeit zu tun. Dies kann oder kann nicht sein eine Visual Studio-Objekt. Da es manifestiert sich in den Speichern - /Öffnen-dialog könnte es sehr wohl eine shell-Objekt.
Die wahrscheinlichste Erklärung ist der registry-Eintrag für das Objekt wurde in irgendeiner Form beschädigt, oder der dll exportiert das Objekt auf irgendeine Weise beschädigt ist. Für letztere könnte es ganz fehlt, oder nur in einem schlechten Zustand aus irgendeinem Grund.
Eine Sache, die Sie versuchen zu tun können, ist ausführen regsvr32 wahrscheinlicher Kandidat, DLLs, aber das ist nur das Schießen in der Dunkelheit.
Andere, anspruchsvollere option ist, um einen debugger Anhängen (wie ntsd oder windbg), um die Visual Studio-Prozess selbst ein und legen Sie einen Haltepunkt auf die CoCreateInstance() in die system-dll (stellen Sie sicher, zu suchen, bis seine exakte Signatur in der header-Datei—kann es sein, #definiert etwas anderes). Dann Holen Sie sich die GUID für das Objekt, das es vorbei ist als das argument von CoCreateInstance(). Suchen Sie diese in deine registry (oder ein Freunde-Registrierung, die nicht dieses Problem haben) sollte Ihnen eine gute Idee von dem, was DLL Sie brauchen, um zu gehen Schweinerei mit.
Das zugrunde liegende problem ist hier, dass ein "CoCreateInstance" ist fehlgeschlagen. Ohne Anhängen eines Debuggers und brechen in "CoCreateInstance" es wird ziemlich schwer auf die Spur, was das problem ist. Und selbst wenn Sie die Zeit verbringen, um dies zu tun, ist es unwahrscheinlich, dass Sie werde in der Lage sein, den Fehler zu beheben.
Ich bin damit einverstanden, dass ein re-install ist der Letzte Ausweg. Aber einen zwischen-Schritt ist der Versuch zum reparieren der Installation. Wenn Sie re-einfügen die VS-Setup-Diskette, eine Option zu "Reparieren" der installation. Sie müssen möglicherweise gehen durch Programme Hinzufügen/Entfernen, um diese option.
Ist eine Reparatur der viel schneller als deinstallieren/neu installieren, und sehr wahrscheinlich wird die Behebung dieses Problems.
BEARBEITEN
OP berichtet, die Reparatur war erfolgreich, aber nicht den Fehler beheben. Können Sie das Ereignisprotokoll überprüfen und sehen, ob ein spezifischer Fehler erzeugt wird, die für dieses scheitern?
Ich habe vor ähnlichen Problem mit VS 2008 und zum Glück wurde es gelöst mit dem unten gezeigten Lösung. Versuchen Sie, diese!!
Suchen devenv.exe.
Rechtsklick >Eigenschaften - > Deaktivieren Sie Visuelle Designs Deaktivieren-Option
Deaktivieren
Disable Visual Themes
hat bei mir nicht funktioniert, aber das ausführen im xp-Kompatibilitäts-Modus behoben. Ich gehe davon aus das problem ist eine fehlende dll.