2009-07-22 14 views

Antwort

6

Normalerweise bemerken Anwendungen beim Start, dass ein Update verfügbar ist, und fragen dann den Benutzer, ob es in Ordnung ist zu aktualisieren. Sie starten dann den Update-Vorgang und beenden den Vorgang. Der Aktualisierungsprozess ersetzt die Dateien und startet dann die neue Version.

In einige Fällen Sie können in der Lage sein, um wegzukommen mit ohne Neustart einige Stücke einer Anwendung zu aktualisieren - aber die zusätzliche Komplexität ist von Bedeutung, und ehrlich gesagt ist es besser, nicht in 99% der Fälle zu versuchen, IMO .

Natürlich haben Sie nicht gesagt, welche Art von App Sie schreiben - wenn Sie mehr Informationen geben könnten, würde das helfen.

3

Die Anwendung muss geschlossen werden, bevor sie aktualisiert wird, da das Aktualisieren einer Anwendung normalerweise das Ersetzen der ausführbaren Dateien (.exe, .dlls usw.) durch ihre neueren Versionen bedeutet und dies nicht ohne Schließen der Anwendung erfolgen kann .

Als Jon said, in einige Fällen können Sie die Anwendung aktualisieren, ohne es zu schließen. Dies ist jedoch nicht ratsam, da dies zu Fehlern im Updater führen kann und das gesamte Update möglicherweise rückgängig gemacht wird.

Updater eine andere ausführbare Datei sein, die zuerst die Hauptanwendung schließen, dann die Updates herunterladen, gelten sie, die Hauptanwendung starten und beenden (Ein Beispiel hierfür ist Skype, FireFox, etc.)

0

Sie könnte das Backend in ein separates Verfahren/Modul aufteilen und das Backend aktualisieren, indem es es neu startet, ohne dass der Benutzer es bemerkt.

Die Aktualisierung des Frontends wird etwas komplizierter, könnte aber vermieden oder verzögert werden, falls erforderlich.

0

Eine schöne und saubere Möglichkeit, dies zu erreichen, wären dynamische Plugins. Sie können Ihre Anwendung stark plugin-basiert codieren. Wenn ein Update erforderlich ist, entladen Sie das Plugin, das aktualisiert werden muss, aktualisieren Sie die DLL-Datei, und laden Sie sie erneut in die Anwendung. Dies für den Benutzer unsichtbar zu machen, kann jedoch ein harter Job sein, daher hängt es stark von Ihrem Design und Ihrer Programmierung ab.

0

Ich erinnere mich an InTime mit der Fähigkeit, Exe Live zu tauschen, aber das musste sorgfältig codiert werden. Ich weiß, dass es möglich ist, aber Jon Skeet sagte, dass es wahrscheinlich besser ist, es nicht zu versuchen.

Es sei denn, Sie tun eine Art von Automatisierung oder etwas sehr ernstes ... sogar dann sollten Sie ein Failover erwägen, so dass Sie ein Herunterfahren/Neustart bei Bedarf.

0

Wenn Sie irgendeine Art von Skelett-Framework haben, die Ihre Anwendung und dlls startete, können Sie CreateDomain betrachten. Es wird jedoch ernsthafte Designbemühungen von Ihnen erfordern. Viel Glück!

Verwandte Themen