Moinsen!
Ich habe jetzt einen Updater geschrieben, der nicht funktioniert.
Nach reiner Logik sollte das eigentlich einwandfrei funktionieren, aber naja.
Das Prinzip:
Ich lade eine Textdatei herunter und überprüfe den Inhalt mit dem Inhalt einer Textdatei im Anwendungsverzeichnis. Die heruntergeladene Datei enthält die Zahl 5, die auf dem Computer die Zahl 4. Wenn die Zahl 1 größer als die Zahl 2 (5, 4) ist, soll er die neue Datei herunterladen. Wenn nicht, dann soll er halt die Anwendung starten.
Soweit so gut, nur ich hänge an der Überprüfung. Ich habe an der Stelle eine If - Anweisung:
So. Hier liegt auch das Problem:
Ich bekomme die MessageBox "Bereits auf dem neuesten Stand.". Aber: Er lädt die Datei herunter die er herunterladen soll wen ein Update verfügbar ist.
Er benennt die heruntergeladene Exe auch um, doch löscht die Textdokumente nicht und schreibt auch nicht den neuen Text hinein (Also die Zahl 5).
Für mich heißt das im Prinzip:
Er führt Codeteile von beiden Seiten aus (von dem Download und dem kein Update verfügbar).
Wo liegt hier mein Fehler? Ich blicke nicht durch. Hab das jetzt so oft geändert und rumprobiert, ich komme einfach nicht auf die Lösung.
Einfacher Denkfehler?
Bitte um Hilfe
Lord Maul
Ich habe jetzt einen Updater geschrieben, der nicht funktioniert.
Nach reiner Logik sollte das eigentlich einwandfrei funktionieren, aber naja.
Das Prinzip:
Ich lade eine Textdatei herunter und überprüfe den Inhalt mit dem Inhalt einer Textdatei im Anwendungsverzeichnis. Die heruntergeladene Datei enthält die Zahl 5, die auf dem Computer die Zahl 4. Wenn die Zahl 1 größer als die Zahl 2 (5, 4) ist, soll er die neue Datei herunterladen. Wenn nicht, dann soll er halt die Anwendung starten.
Soweit so gut, nur ich hänge an der Überprüfung. Ich habe an der Stelle eine If - Anweisung:
VB.NET-Quellcode
- If New > Old Then
- Dim res As MsgBoxResult = MsgBox("Update gefunden. Herunterladen?", MsgBoxStyle.YesNo)
- If res = MsgBoxResult.Yes Then
- DL3.DownloadFileAsync(New Uri("hier halt die URL zur Datei", Application.StartupPath & "\anwn.exe")
- DELFILES() '<- Hier sollten die Dateien gelöscht werden
- Else
- MsgBox("Update Abgebrochen.", MsgBoxStyle.Exclamation)
- Process.Start(Application.StartupPath & "\anw.exe")
- Application.Exit
- End If
- Else
- MsgBox("Bereits auf dem neuesten Stand.")
- Process.Start("Appliction.StartupPath & "\anw.exe")
- Application.Exit
- End If
- Private Sub DL3_DownloadCompleted(ByVal sender As Object, ByVal e As DownloadFileCompletedEventArgs) Handles DL3.DownloadFileConpleted
- MoveFiles() ' <- Bennent die heruntergeladene Datei um damit auch alles später funktioniert
- End Sub
- Private Sub MoveFiles()
- File.Move(Application.StartupPath & "\anwn.exe", Application.StartupPath & "\anw.exe")
- ' Hier steht auch noch eine andere, aber ist nicht relevant für mein Problem
- End Sub
So. Hier liegt auch das Problem:
Ich bekomme die MessageBox "Bereits auf dem neuesten Stand.". Aber: Er lädt die Datei herunter die er herunterladen soll wen ein Update verfügbar ist.
Er benennt die heruntergeladene Exe auch um, doch löscht die Textdokumente nicht und schreibt auch nicht den neuen Text hinein (Also die Zahl 5).
Für mich heißt das im Prinzip:
Er führt Codeteile von beiden Seiten aus (von dem Download und dem kein Update verfügbar).
Wo liegt hier mein Fehler? Ich blicke nicht durch. Hab das jetzt so oft geändert und rumprobiert, ich komme einfach nicht auf die Lösung.
Einfacher Denkfehler?
Bitte um Hilfe
Lord Maul