Selbstaktualisierung

8

Was ist der beste Weg, um ein Programm zu beenden und dann zusätzlichen Code aus dem Programm zu starten, das beendet wird? Zum Beispiel, was wäre der beste Weg für ein Programm, sich selbst zu aktualisieren?

    
Mike 05.09.2008, 15:15
quelle

7 Antworten

9

Sie haben ein paar Optionen:

Sie können eine andere Anwendung .exe verwenden, um die automatische Aktualisierung durchzuführen. Dies ist wahrscheinlich die beste Methode.

Sie können die Programm-Exe auch umbenennen, während sie ausgeführt wird. Daher können Sie die Datei von einem Update-Server abrufen und ersetzen. Beim nächsten Start des Programms wird die neue .exe verwendet. Sie können die umbenannte Datei beim Start löschen.

    
Brian R. Bondy 05.09.2008, 15:20
quelle
1

Es macht es einfacher, wenn Sie eine sekundäre App haben, die ausgeführt wird, um die Aktualisierungen durchzuführen. Sie würden die App "Updater" ausführen und dann darin warten, bis der andere Prozess beendet wird. Wenn Sie Zugriff auf die regulären Apps-DLLs usw. benötigen, diese aber auch aktualisiert werden müssen, können Sie den Updater von einem sekundären Speicherort mit bereits aktualisierten DLLs ausführen, damit sie nicht am ursprünglichen Speicherort verwendet werden.

    
crashmstr 05.09.2008 15:21
quelle
1

Es wäre wirklich hilfreich zu wissen, über welche Sprache wir hier sprechen. Ich bin mir sicher, dass ich Ihnen in PowerBuilder oder Cobol einige wirklich gute Tipps geben kann, aber das ist vielleicht nicht das, wonach Sie suchen! Wenn Sie Java jedoch sprechen, dann könnten Sie einen heruntergefahrenen Haken verwenden - funktioniert gut für mich.

    
ninesided 05.09.2008 15:39
quelle
1

Eine andere Sache, die man beachten sollte, ist, dass die meisten der "großen" Apps, die ich benutzt habe (FileZilla, Paint.NET, etc.), die Updater die vorherige Version der App deinstallieren und dann eine Neuinstallation von die neue Version der Anwendung.

Ich verstehe, dass dies nicht für wirklich große Anwendungen funktionieren wird, aber dies scheint ein "bevorzugter" Prozess für die kleinen bis mittleren Anwendungen zu sein.

    
Dillie-O 05.09.2008 15:46
quelle
0

Ich kenne keine Möglichkeit, dies ohne ein zweites Programm zu tun, das das primäre Programm vor dem Herunterfahren startet. Programm 2 lädt herunter und installiert die Änderungen und startet dann das primäre Programm neu.

    
jodonnell 05.09.2008 15:18
quelle
0

Wir haben so etwas in unserer vorherigen App gemacht. Wir haben die Beendigung des Programms (in .NET 2.0) entweder über die X- oder die Schließen-Schaltfläche erfasst und dann einen Hintergrundaktualisierungsprozess gestartet, den der Benutzer nicht gesehen hat. Es würde den Server (Client-Server-App) auf ein Update prüfen, und wenn es einen gab, würde es im Hintergrund mit BITS herunterladen. Dann beim nächsten Öffnen der Anwendung würde es erkennen, dass es eine neue Version gab (wir setzten ein Flag) und eine Nachricht aufwarf, die den Benutzer auf die neue Version aufmerksam machte, und eine Schaltfläche zum Klicken, wenn sie die hinzugefügten neuen Funktionen sehen wollten zu dieser Version.

    
Noah 05.09.2008 15:20
quelle
0

Wenn Sie eine .NET-Anwendung schreiben, sollten Sie ClickOnce verwenden. Wenn Sie einiges an Anpassung benötigen, können Sie sich woanders umsehen.

Wir haben einen externen Prozess, der die Aktualisierung für uns durchführt. Wenn es ein Update findet, lädt es es in einen sekundären Ordner herunter und wartet dann darauf, dass die Hauptanwendung beendet wird. Beim Beenden ersetzt es alle aktuellen Dateien. Der primäre Prozess startet den Aktualisierungsprozess nur alle 4 Stunden. Da der Aktualisierungsprozess auf das Beenden der primären App wartet, muss die primäre App keine spezielle Verarbeitung durchführen, außer dass sie die Aktualisierungsanwendung startet.

Dies ist ein Nebenproblem, aber wenn Sie Ihren eigenen Update-Prozess schreiben möchten, würde ich Sie ermutigen, die Art der Komprimierung zu untersuchen, um (1) beim Download zu sparen und (2) eine Datei bereitzustellen ein Update-Server.

Hoffen Sie, dass das Sinn macht!

    
David Mohundro 05.09.2008 15:42
quelle

Tags und Links