Ich entwickle eine Software und möchte aus verschiedenen Gründen meine eigene Auto-Update-Funktion entwickeln. Das Programm ist eine vollständige GUI, geschrieben mit PyQt, und verwendet Icons, Datendateien usw. Es wird mit cx_freeze oder pyinstaller eingefroren.Update-Programm: Dateien überschreiben?
Der Auto-Update-Teil wird die neue Version (eine Zip-Datei) auf einem Remote-Server herunterladen. Dann wird es kompliziert:
Die Software läuft und hat die neue Version heruntergeladen. Was macht es mit der neuen Version? Kann die Software die Dateien aus der Zip extrahieren und die Dateien der laufenden Version überschreiben?
Oder sollte ich die neue Version beiseite legen, die laufende Version beenden und irgendwie die neue Version verwenden? Wenn ja, wie mache ich den Austausch zwischen der alten und der neuen Version?
EDIT:
Hier ist zum Beispiel der closeEvent
Methode meiner Klasse QMainWindow:
def closeEvent(self, event):
"""Method to perform actions before exiting.
Allows to save the prefs in a file"""
...Do some stuff...
QtGui.qApp.quit()
self.logger.info("Closing the program")
Kann ich diese Methode verwenden, um den Austausch zu führen?
Öffnen eines Thread ohne 'deamon' alte Dateien entfernen, später neu zu extrahieren. Aber vergleichen Sie alle Konfigurationsdateien auf fehlende/ungültige Parameter. Töte natürlich alle zugehörigen Anwendungen, bevor du neu startest! – dsgdfg
Ich habe meine Frage bearbeitet, um genauer zu sein, wenn es hilft. Kannst du mir zeigen, wie und wo ich den Faden öffnen soll? – Rififi