Problem mit Updater ?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Gugi.

    Problem mit Updater ?

    Hallihallo

    Habe mir nen updater gebaut der überprüft nach Button1.Click ob ein Update verfügbar ist.


    Folgender Code

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. My.Computer.Network.DownloadFile("http://www.----------------.de/Updates/version.txt", "E:/E-Mg/version.txt")
    3. Dim Version As String = Replace(My.Computer.FileSystem.ReadAllText("E:/E-Mg/version.txt"), vbCrLf, "")
    4. Dim OldVersion As String = Replace(Application.StartupPath & "E:/E-Mg/version.txt", vbCrLf, "")
    5. My.Computer.FileSystem.DeleteFile("E:/E-Mg/version.txt")
    6. If MessageBox.Show("Es ist ein neues Update verfügbar !" & vbCrLf & "Du kannst es im nächsten Schritt downloaden", "Update verfügbar !", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
    7. My.Computer.FileSystem.DeleteFile(Application.StartupPath & "E:\E-Mg\a.rar")
    8. My.Computer.Network.DownloadFile("http://www.------------------------.de/Updates/a.rar", Application.StartupPath & "E:/E-Mg/a.rar")
    9. MsgBox("Update wurde gespeichert" & vbCrLf & "Weitere Infos über unser Forum", MsgBoxStyle.Information, "Fertig")
    10. Else
    11. My.Computer.FileSystem.DeleteDirectory("C:\E-Mg", FileIO.UIOption.AllDialogs, FileIO.RecycleOption.SendToRecycleBin)
    12. Me.Close()
    13. End If
    14. End Sub






    Jetzt gibt er bei folgendem Code den Fehler aus

    VB.NET-Quellcode

    1. My.Computer.FileSystem.DeleteFile(Application.StartupPath & "E:\E-Mg\a.rar")


    Fehler:

    Das angegebene Pfadformat wird nicht unterstützt.


    Was kann ich da machen das er durchläuft?


    Gruß Keyt0ast3r
    du musst nur

    E:\E-Mg


    wegnehmen weil wenn du schon Application.StartupPath nimmst dann hängt er E:\E-Mg mit dran also z.b der StartupPath ist C:\Program Files\ICQ7.1 dann hängt er E:\E-Mg dran und das ist kein Path mehr. (C:\Program Files\ICQ7.1E:\E-Mg)

    Und statt Application.StartupPath würde ich My.Computer.FileSystem.SpecialDirectories.Temp nehmen
    Mit freundlichen Grüßen,
    Jan

    Hat geklappt. Jetzt noch kurz ne andere Frage.

    Hi nochmal

    Jetzt im Moment ist es ja das er immer anzeigt " Neue Version vorhanden " ...

    Wie kann ich das ändern das er in der version.txt guckt welche nummer dort eingetragen ist und diese vergleicht.

    Wenn diese höher ist das er dann anzeigt " Neue version vorhanden " und wenn die gleiche nummer dort drin steht " Alles auf dem neusten Stand".

    Gruß Micha
    Du schreibst in die Version.txt die aktuelle Version (in der Form 1.0.2.0) und prüfst, ob diese Nummer höher ist, als die die in den Assembly-Informationen. Jedoch musst du diese natürlich bei jedem neuen Release anpasssen.

    VB.NET-Quellcode

    1. Dim WebC As New WebClient
    2. Dim onlineV As String = WebC.DownloadString("http://.../version.txt")
    3. If Not Application.PruductVersion = CInt(onlineV) Then
    4. MessageBox.Show("Neue Version verfügbar")
    5. Else
    6. MessageBox.Show("Aktuellste Version installiert")
    7. End If


    Grüsse
    Pascal
    auslesen kannst du z.b. in einer richtextbox so:

    VB.NET-Quellcode

    1. Try
    2. Dim client As New Net.WebClient
    3. RichTextBox1.Text = client.DownloadString("http://deineseite.de/version.txt")
    4. Catch ex As Exception
    5. Messagebox.show("Error!")
    6. End Try


    mfg Gugi

    Edit: Zu spät :D

    Gugi schrieb:

    auslesen kannst du z.b. in einer richtextbox so:

    VB.NET-Quellcode

    1. Try
    2. Dim client As New Net.WebClient
    3. RichTextBox1.Text = client.DownloadString("http://deineseite.de/version.txt")
    4. Catch ex As Exception
    5. Messagebox.show("Error!")
    6. End Try


    mfg Gugi

    Edit: Zu spät :D


    Vor allem will er ja, dass überprüft wird, ob ein Update notwendig ist. Und dazu musst du die Versionen vergleichen (Siehe Code oben).

    Grüsse
    Pascal