stefankittel
Goto Top

Kann sich ein Dienst selber aktualisieren?

Hallo,

ich plane gerade eine kleine Anwendung (c++ oder c#) die unter Windows als Dienst laufen soll.
Wichtig ist eine Auto-Update-Funktion.

Der Dienst fragt einen Server ob es ein Update gibt, lädt eine setup.exe runter.
Ich kann die Dateien des Dienstes ja nicht überschreiben solange dieser läuft.

Frage
1) Die Dienst startet die setup.exe
2) Die setup.exe beendet den Dienst, kopiert die Dateien und startet den Dienst.
Geht das? Oder wird die setup.exe beendet sobald der Dienst beendet wird? Die setup.exe läuft ja in dessen Sicherheitsbereich.
Weiß das Jemand auswendig?

Alternativ könnte ich zwei Dienste machen (einer für Updates, einer für die Funktion).
Oder so ein Eintrag, dass Windows das Update beim nächsten Neustart ausführt.

Viele Grüße

Stefan

Content-ID: 323872

Url: https://administrator.de/contentid/323872

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

MrFlow
MrFlow 15.12.2016 um 06:45:41 Uhr
Goto Top
Hallo,

ja ist ohne weiteres Möglich - hab ich erst selbst in C# gemacht.

Grüße
emeriks
emeriks 15.12.2016 um 07:40:27 Uhr
Goto Top
Hi,
ich habe das über eine DB gelöst.
Der betreffende Dienst benötigte eh diese SQL-DB. Also habe ich den Dienst nur als "Startrampe" angelegt. Diese prüft die DB, ob eine Modul vorhanden ist, lädt dieses runter und startet es dann. Wenn es beim nächsten Start oder während der Laufzeit ein aktuelleres Modul in der DB entdeckt, dann lädt es das neue herunter und startet dieses. Da sich dabei der Dienst so gut wie "nie wieder" ändern wird, muss ich auch "nie wieder" wegen dessen am Server oder Client was installieren. Die Module packe ich als ZIP und lade sie in die DB hoch. Kleine GUI dafür geschrieben, fertig.

E.