2009-07-07 17 views
3

Ich muss mein Delphi-Programm eine neue Version einer DLL eines Drittanbieters verwenden. Ich möchte die neue Version verwenden können, aber bei Bedarf auf die alte Version zurückgreifen.Neue Version der COM-DLL von Drittanbietern - Installieren und Aufbewahren alter Versionen in Delphi?

Einige der Objekte sind unsichtbare Objekte in einem Formular in der App. Andere, die ich zur Laufzeit instanziiere.

Wie installiere ich die neue Version der DLL in Delphi unter Beibehaltung der bestehenden Version? Ich benutze Delphi 2007.

+0

Sprechen Sie über das Registrieren der Entwurfszeit für ActiveX-Steuerelemente? –

+0

Ja, Lars. Das ist es, was ich versuche zu tun. – Dave

Antwort

2

Zur Laufzeit (einschließlich Bereitstellung) sollten Sie die Win32-Assembly-Side-by-Side-Freigabe (WinSxS) verwenden können, um die neue Version der Komponente für Ihre Anwendung verfügbar zu machen, während der Rest des Systems weiterläuft mit jeder vorhandenen Version arbeiten. Haftungsausschluss: Ich habe dies in der Praxis nie getan.

Zur Entwurfszeit (in Delphi) denke ich, dass Sie keine andere Wahl haben, als mit einer bestimmten Version zu arbeiten, es sei denn, sie haben neue Interfaces und CoClasses erzeugt (in diesem Fall können Sie verschiedene Namen im Delphi-Wrapper) für alles, was geändert wurde. Lösungen, wie sie von Gamecat angeboten werden, sind wahrscheinlich die beste Wahl.

3

Wir haben mehrere Produkte. Einige von ihnen werden mit verschiedenen Versionen von Delphi und verschiedenen Versionen von externen Komponenten entwickelt. (Manchmal ist das Portieren/Upgraden keine Option).

Um dieses Problem zu lösen, haben wir (Netzwerk-) Anteile für jedes Produkt. Und wenn wir anfangen, an einem Produkt zu arbeiten, ordnen wir das Standardlaufwerk (in unserem Fall w :) dieser Freigabe zu und starten die erforderliche Version von Delphi. Auf diese Weise hat jedes Produkt seine eigene Umgebung und seine eigene Version der Komponenten.

Nachteil ist, dass Sie einige Popups manchmal beim Start töten müssen, aber das System funktioniert gut.

Eine andere Lösung ist die Verwendung von virtuellen PCs. Aber nicht alle Lizenzsysteme erlauben diesen Einsatz.