Wie kann ich die neuste Version jetzt laden?

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Manawyrm.

    Wie kann ich die neuste Version jetzt laden?

    Hallo Community! Ich habe folgenden Fehler, wenn ich das Downloadstring Event in meine Form einbaue dann spinnt die anwendung und bricht dann alles ab, soweit mit neue version und so habe ich schon, aber wie kann ich das jetzt downloaden?

    Hier mein Code:

    VB.NET-Quellcode

    1. Public Class updatefrm1
    2. Private Sub updatefrm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Check4up()
    4. End Sub
    5. Private Sub Check4up()
    6. Dim wc As New Net.WebClient
    7. Dim inhalt As String = ""
    8. Try
    9. inhalt = wc.DownloadString("http://domain.de/version.txt")
    10. Catch
    11. End Try
    12. Me.lblmyversion.Text = inhalt
    13. If inhalt = My.Application.Info.Version.ToString Then
    14. MsgBox("Du hast bereits die neuste Version!", MsgBoxStyle.Information, "")
    15. Else
    16. MsgBox("Deine Version ist veraltet!", MsgBoxStyle.Critical, "")
    17. 'Wie kann ich die Version jetzt downloaden? Das Downloadstring event get bei mir iwi net :((
    18. End If
    19. End Sub
    20. Private Sub checkbtn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles checkbtn1.Click
    21. Check4up()
    22. End Sub
    23. End Class


    Vielleicht übersehe ich auch einfach nur was aber bitte helft mir ?( ?(
    Moderatorin: "Apropo ritzen.." Shin Chan: "hoho sie hat Po ritze gesagt"
    "saying to buy a mac because your anti-virus expired is like saying you're out of condoms so you're just going to go fuck dudes"
    "Wie auch in anderen Threads kann ich leider nichts bieten außer vielleicht spaß beim Skypen aber mehr leider auch nicht." - Sind kinder pornos nicht verboten?

    Breadsoft schrieb:

    Also ich mache das so

    Code

    Ich schreibe in eine Textdatei die Version und die URL rein: "1.0.0.0%adresse.de/update.zip"
    dann lade ich mir den string runter und splitte den
    dann speicher ich die adresse in My.Settings für den Download(ich downloade das update in neuem fenster)
    dann überprüfe ich ob die version gleich ist oder nicht

    ehm, naja ich will es eig. so simpel wie möglich machen, du lädst dann ja gleich ne ganze ZIP zum Prüfen, wenn die sich dann ändert dann will er das erst melden? (Also wenn die beiden nicht mehr übereinstimmen?)
    Dann kann man es ja gleich mit "1.0.0.0 und 1.0.0.1" machen oder?
    Achsooo :) ich habs mir nochmal genauer angeguckt, aber ich will das folgendermaßen:

    Ich starte die normale Anwendung.
    Dann klick ich auf update und er guckt nach der neusten version.
    Dann lädt er sich die neuste version runter und startet sie. während die startet löscht er die alte version... das habe ich schon alles fertig, bis auf das downloaden xD
    ich erklär dir das nochmal genauer

    Das ist der Inhalt der Textdatei auf meinem Webserver:

    Quellcode

    1. 1.1.3.0%http://adressedeswebservers.de/neuesteversiondesprogrammes.zip



    in meinem Programm lade ich mir dann diesen Text wie folgt herunter:

    VB.NET-Quellcode

    1. Dim WC As WebClient
    2. Dim versionandurl() As String = Split(WC.DownloadString("http://breadsoft.bplaced.net/scripts/tweakutils_version.txt"), "%")


    wie du siehst splitte ich den text auch gleich damit habe ich die neueste version des programmes und die url, wo man sich das programm dann runterladen kann.

    dann hole ich mir die version des programmes welches grade verwendet wird und mache eine neue Variable für die neueste version

    VB.NET-Quellcode

    1. Dim oldversion As String = My.Application.Info.Version.ToString
    2. Dim newversion As String = versionandurl(0)



    dann überprüfe ich ob das gleich ist oder nicht

    VB.NET-Quellcode

    1. If oldversion = newversion Then
    2. '...
    3. End If


    Dann wen die Versionen gleich sind, sage ich das dem Benutzer. Wenn die Version unterschiedlich sind, öffne ich eine neue Form, die gleich die neue Version des Programmes runterlädt und dann schließe ich mein programm und öffne den dateipfad, wohin ich die neue version heruntergeladen hab.

    Davinci schrieb:

    Glossy Cherry schrieb:

    System.Net.WebClient.DownloadFile
    Ok ich werds mal eben versuchen...

    //EDIT: Funzt net :( noch andere Vorschläge?
    Meinst du das so?

    VB.NET-Quellcode

    1. System.Net.WebClient.DownloadFile("http://domain.de/test/version.txt", "C:\")

    a) C:\ als ziel am besten ned, nimm lieber den selben ordner wo die exe liegt: msdn.microsoft.com/de-de/libra…lication.startuppath.aspx
    b) Musst du auch den dateinamen in den downloadpath packen. (Wo du jetzt nur C:\ hast)

    Wenn du dir das alles ersparen willst, kannst du einfach ein update system nehmen, anfangend bei leicht: thucommix version, bis hin zu overloaded thing: update system.net von Maximilian Krauß.

    btw: Weiches Brot kannste einfach ignorieren.
    Moderatorin: "Apropo ritzen.." Shin Chan: "hoho sie hat Po ritze gesagt"
    "saying to buy a mac because your anti-virus expired is like saying you're out of condoms so you're just going to go fuck dudes"
    "Wie auch in anderen Threads kann ich leider nichts bieten außer vielleicht spaß beim Skypen aber mehr leider auch nicht." - Sind kinder pornos nicht verboten?
    Danke für eure Hilfe, aber Downloadstring geht jetzt doch!
    Ich weiß nicht was ich falsch gemacht habe aber richtig war dann:

    VB.NET-Quellcode

    1. My.computer.network.downloadfile("http://www.doamin.de/test.exe", f1.selectedpath & "\test.exe")


    Trotzdem Danke!! :thumbsup: :thumbsup:
    Das geht zwar, aber ist noch lange nicht richtig.

    Die Sachen aus dem My-NameSpace solltest Du meiden. Du hast doch zu Anfangs schon mit dem WebClient gearbeitet, wieso machst Du jetzt so nen Ranz?
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Erklärung deines Codes:
    Der Selectedpath, wie oben schon geschrieben, gibt den ganzen path an zur datei und somit _mit_ dem dateinamen.
    Moderatorin: "Apropo ritzen.." Shin Chan: "hoho sie hat Po ritze gesagt"
    "saying to buy a mac because your anti-virus expired is like saying you're out of condoms so you're just going to go fuck dudes"
    "Wie auch in anderen Threads kann ich leider nichts bieten außer vielleicht spaß beim Skypen aber mehr leider auch nicht." - Sind kinder pornos nicht verboten?
    Hier nochmal den ganzen Code, falls jmd. nicht klar kommt :)

    Und jetzt auch alles richtig ;)

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class updatefrm1
    3. Private Sub updatefrm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Check4up()
    5. Label3.Text = My.Application.Info.Version.ToString
    6. End Sub
    7. Private Sub Check4up()
    8. Dim wc As New Net.WebClient
    9. Dim dl As New Net.WebClient
    10. Dim inhalt As String = ""
    11. Try
    12. inhalt = wc.DownloadString("http://test.de/test/version.txt")
    13. Catch
    14. End Try
    15. Me.lblmyversion.Text = inhalt
    16. If inhalt = My.Application.Info.Version.ToString Then
    17. checkbtn1.Enabled = False
    18. Else
    19. checkbtn1.Enabled = True
    20. End If
    21. End Sub
    22. Private Sub checkbtn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles checkbtn1.Click
    23. f1.ShowDialog()
    24. If f1.SelectedPath = f1.SelectedPath Then
    25. Try
    26. My.Computer.Network.DownloadFile("http://www.test.de/test/test.exe", f1.SelectedPath & "\test.exe")
    27. MsgBox("Deine Verion wurde erfolgreich geupdatet!", MsgBoxStyle.Information, "")
    28. Process.Start(f1.SelectedPath & "\test.exe")
    29. Catch ex As Exception
    30. MsgBox("Konnte die Datei nicht downloaden.")
    31. End Try
    32. Else
    33. MsgBox("Du musst erst einen Ordnerpfad angeben!", "WARNUNG!")
    34. f1.SelectedPath = Nothing
    35. End If
    36. End Sub
    37. End Class


    //EDIT:
    Hier noch ein Screen :)
    imageshack.us/photo/my-images/838/fertigxd.jpg/

    Mfg
    Davinci :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Davinci“ ()

    Ugh. Der Sicherheitsfanatiker in mir stirbt gerade..

    Unsignierte Dateien einfach so via HTTP runterladen und ausführen?
    Aber sonst gehts noch gut?

    Solltest du dich nicht in der Lage fühlen, ein vernünftiges System zu entwickeln, schau dir Maximilians UpdateSystem.net an!
    Das ist eine der wenigen vernünftigen Möglichkeiten Softwareupdates zu veröffentlichen.