Wie kann ich die Registrierung von COM-DLLs aufheben, die ursprünglich mit RegSvr32 hinzugefügt wurden, wenn das /u-Argument nicht funktioniert?

StackOverflow https://stackoverflow.com/questions/19725

Frage

Richtig, zunächst lief:

c:\regsvr32 Amazing.dll

Dann muss ich es (aus Versehen – möchte ich hinzufügen) noch einmal ausgeführt haben, und zwar noch einmal, als neue Versionen von „Amazing.dll“ veröffentlicht wurden.Ja, ich weiß Jetzt Ich hätte ausführen sollen:

c:\regsvr32 /u Amazing.dll

vorher - aber hey!Ich habe vergessen.

Um es auf den Punkt zu bringen: Wenn ich die COM-Referenz in VS hinzufüge, sehe ich drei Instanzen von „Amazing“, die alle auf denselben Speicherort (c:\Amazing.dll) verweisen und ausgeführt werden regsvr32 /u Entfernt einen der Verweise beim zweiten Mal – macht nichts ...

Wie werde ich diese Verweise los?Betrachte ich ein Regedit-Szenario?- Wenn ja, was genau passiert, wenn ich einen der Schlüssel lösche???

Prost

War es hilfreich?

Lösung

Die GUIDs Ihres Objekts sollten sich nicht ändern.Mit anderen Worten: Sobald Sie das COM-Objekt registriert haben, sollte die erneute Registrierung nichts Neues zur Registrierung hinzufügen.

Es sei denn, Sie haben dem Projekt zusätzliche COM-Schnittstellen oder Objekte hinzugefügt.

Wenn es sich um einen einmaligen Deal handelt (und es hört sich so an), öffnen Sie auf jeden Fall regedit und löschen Sie die nicht benötigten Schlüssel manuell.

Andere Tipps

Es gibt ein Tool von MS, das immer noch im Umlauf ist und das schon seit Win95-Tagen existiert. Es scannt die Registrierung und findet Dinge wie das Finden von COM-Schlüsseln, die nicht mehr auf eine gültige Datei verweisen usw. namens RegClean (ich habe es hier gefunden: http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094), die ich an manchen Orten immer noch verwendet habe, insbesondere wenn ich mit älteren COM-Sachen in VB herumspielte, die nach jedem Build neue COM-GUIDs generieren.

Wenn Sie das also haben, die Registrierung aufheben und die Datei löschen oder verschieben, führen Sie die App aus und die „verwaisten“ Einträge werden gelöscht.

Wenn Sie sich entscheiden, die Schlüssel mithilfe von RegEdit zu entfernen, müssen Sie möglicherweise sowohl die Klassen-IDs als auch die GUID-Einträge entfernen.

Ich bin schon einmal in ein schreckliches Chaos mit COM geraten.Leider musste ich mich durch die Registrierung kämpfen und jede Referenz löschen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top