verwenden zwei verschiedene Versionen derselben Steuerung (DLL) zur gleichen Zeit auf der gleichen Maschine?

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

  •  21-09-2019
  •  | 
  •  

Frage

Ich verwende a3rd Party-Komponente in meinem Projekt und ich auf ihre neueste Version kürzlich aktualisiert, die Fehler behoben ‚A‘

leider, während es gelöst Bug 'A', ein anderer Teil völlig instabil geworden ist, so dass es einen Fehler 'B' eingeführt.

Da ‚A‘ und ‚B‘ sind in ganz unterschiedlichen Kontexten, möchte ich der Steuer beide Versionen installiert haben und verwenden Sie den in einem Fall, in dem Fehler ‚B‘ nicht relevant ist, und die andere in dem Fall dass Fehler 'A' ist nicht relevant.

natürlich alles, bis eine passende Lösung wird von dem 3rd-Party-Entwickler ausgegeben worden

Jeder jeder Gedanke, wie dies getan werden kann?

R

P. S. die DLL-Bedürfnisse mit regsvr32 registriert werden ... Ich vermute, dies ist der Punkt, wo es macht sich auffindbare ... Ich hoffe, mit einigen Tricks es hier ist, dass wir die Sache doppelt unter einem anderen Namen registrieren

War es hilfreich?

Lösung

Sie können andere Version einer COM-Komponente einsetzen und nutzen sie ohne Anmeldung. Dieses Merkmal der anmeldefreien COM hat mit Windows XP und erfordert, dass Sie eingeführt eine manifest-Datei mit den entsprechenden Einstellungen zu implementieren.

Hier finden Sie aktuelle Anmeldung Freie Aktivierung von COM-Komponenten und Escape DLL Hell: Vereinfachen App Deployment mit Clickonce und Registration-Free COM .

Andere Tipps

Sie können nur eine COM-DLL des gleichen Typs auf Ihrem Computer registrieren ... deshalb der GAC durch .Net eingeführt wird,

Wenn die Dritte Komponente eine COM-Komponente ist, dann sind Sie auf dem richtigen Weg, müssen Sie sie registrieren zweimal mit verschiedenen Namen / Guids.

EDIT: siehe divo Antwort über mehr COM-Registrierung ... Nach XP Sie das jetzt tun können ...
Aber vor, dass der einzige Weg, um diesen (kurz den Quellcode und eine neue DLL, sie mit unterschiedlichen Registrierungs guids neu zu kompilieren) zu tun, war es, manuell die Typbibliothek zu ändern und ersetzt die bestehende guids durch neue. Dies wäre äußerst schwierig. (Es kann ein Werkzeug vorhanden ist, dies zu tun, aber wenn es mich don t weiß davon) die Typbibliothek, die übrigens in der DLL eingebettet sein kann selbst, oder es kann in einem separaten * TLB-Datei (gemeinsam sein für VB6-Komponenten)

Wenn OTOH, ist die Komponente, um einen verwalteten Code-Komponente, dann ist die Registrierung nur notwendig sein kann, für die Integration in Visual Studio, und wird es ausreichend sein, nur die DLL in den Anwendungsordner für die ausführbare Datei kopieren Sie es verwenden in ...

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