Assemblies aktualisieren

22/11/2007 - 11:05 von Bodo Jäger | Report spam
Hallo,
ich würde gern ein Programm schreiben, das wàhrend der Ausführung in der
Lage ist Assemblies, die zur Programmausführung benötigt werden, erneut zu
laden.
Das Programm soll sich also selbst immer auf dem neuesten Stand halten.

Meine Idee war, alle Referenzen auf die Assembly zu löschen, sie dann als
neue Version laden, um sie dann wieder nutzen zu können.
Ich schaffe es auch, die neue Version zu laden, aber ich bekomme die alte
Version nicht aus dem Speicher, geschweige denn, das das Programm mit der
neuen Assembly weiterlàuft.

Gibt es da Möglichkeiten, oder ist mein Ansatz völlig falsch?

Bodo
 

Lesen sie die antworten

#1 Elmar Boye
23/11/2007 - 09:32 | Warnen spam
Hallo Bodo,

Bodo Jàger schrieb ...
ich würde gern ein Programm schreiben, das wàhrend der Ausführung in der
Lage ist Assemblies, die zur Programmausführung benötigt werden, erneut zu
laden.
Das Programm soll sich also selbst immer auf dem neuesten Stand halten.




Schau Dir mal das Click Once Deployment in der Dokumentation an,
ob Dir das nicht einige Arbeit abnehmen kann.
Das behandelt auch das Aktualisieren von Abhàngigkeiten uam.,
die bei etwas grösseren Anwendungen zum Tragen kommen:
http://msdn2.microsoft.com/de-de/library/t71a733d(vs.80).aspx

Meine Idee war, alle Referenzen auf die Assembly zu löschen, sie dann als
neue Version laden, um sie dann wieder nutzen zu können.



Das funktioniert prinzipbedingt nicht, denn eine Assembly kann nicht
entladen werden (das geht nur für eine AppDomain - was aber bei der
Anwendungs-Domain nicht weiterhilft).

Nach der Aktualisierung wàre deswegen ein Neustart der Anwendung
erforderlich, z. B. via Application.Restart.

Gruss
Elmar

Ähnliche fragen