Ich möchte noch klarstellen, dass sich die exe von mir nicht (die gleiche datei) selber löscht, sondern die neu heruntergeladene löscht die alte datei.
Könnte es möglich sein, dass es bei mir probleme mit prozessnamen gibt, denn wenn ich ein Programm während der laufzeit unbennene so hat es noch immer den gleichen Prozessnamen.
Ich habe auch das gefühl das es hin und wieder das alte programm nicht löscht, weil es noch gelaufen ist während das neue Programm ausgeführt wurde.
Unter anderem aus diesen Gründen sollte man eine separate Update-Anwendung verwenden.
Nicht, dass das nicht auch so gehen würde, aber bei jedem Release muss man höllisch aufpassen, dass dieser Update-Code funktioniert. Und wofür? Weil der Code genau einmal zum Einsatz kommt? Dann doch lieber einen Updater der einmal gebaut und (bei jedem Update) immer wieder benutzt werden kann.
Kleines Beispiel:
Ändert sich z.B. der
Mutex-Name (erkennen ob die alte Anwendung noch läuft), dann muss die neue Anwendung alle alten
Mutex-Namen kennen sonst knallt es. Der Updater bekommt von der aktuellen Anwendung den
Mutex-Namen mitgeteilt und kümmert sich entsprechend.
Bevor mir jetzt einer kommt "Ich benutze keinen
Mutex" oder "Mein
Mutex ändert sich nicht" - es ist nur ein Beispiel was mir jetzt adhoc mal eingefallen ist und aufzeigen soll, dass kleine Änderungen einen Rattenschwanz hinter sich herziehen können, die durch einen externen Updater wesentlich eleganter und einfacher gelöst werden können.