6 Stimmen

Aufhebung der Registrierung von alten Versionen einer .net-Assembly

Ich habe eine Baugruppe, die viele alte registrierte Versionen enthält.

Die einzige Dll, die ich habe, ist die letzte.

Wie kann ich die Registrierung aller Versionen der Baugruppe aufheben?

Danke.

EDIT : Ich möchte dies zur Laufzeit zu tun, so dass ich so etwas wie regasm -u... oder eine andere Skript-y Lösung wollen.

3voto

Tim M. Punkte 52563

EDIT: Ich gehe davon aus, dass es zugehörige Registrierungseinträge gibt, die Sie zu entfernen versuchen.

Regasm kann eine .reg-Datei ausgeben.

Sie können die Option /regfile verwenden, um eine .reg-Datei erzeugen, die die Registry-Einträge enthält, anstatt die Änderungen direkt in der Registrierung vorzunehmen. Sie können die Registrierung auf einem Computer aktualisieren durch Importieren der .reg-Datei mit dem Registrierungseditor (Regedit.exe) importieren.

Wenn Sie alte Versionen während der Laufzeit deinstallieren möchten, können Sie das vermutlich tun:

1) Erstellen Sie eine reg-Datei für die aktuelle Baugruppe (zu Referenzzwecken).

2) Schreiben Sie eine Anwendung, die die Registrierung auf ähnliche Schlüssel untersucht (vielleicht mit unterschiedlichen Versionsnummern?)

3) Verwenden Sie regasm, um passende Baugruppen zu deregistrieren. Deinstallieren Sie ggf. COM-Entitäten mit regsvr32.

4) Entfernen Sie diese Tasten VORSICHTIG programmatisch.

5) Registrieren Sie Ihre neue Baugruppe.

6) gacutil die neu registrierte Baugruppe (falls erforderlich).

Meine COM/Interop-Kenntnisse sind etwas eingerostet, also bitte einen Kommentar hinterlassen, wenn es nicht funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X