Versionsabgleich & Link zum Download in nur einer Textdatei?

  • VB.NET

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

    Stimmt, habe ich gerade mal kurz mit einen NET. Framework 2.0 Programm getestet.

    Allerdings muss in kombination mit dem Code NET. Framework 4.0 genutzt werden, weil er mit älteren Versionen sonst diese Fehlermeldung gibt: "Parse" ist kein Member von "System.Version".
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    @Artentus
    Mache ich was falsch? Es passiert nichts ..

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim WebClient_Check As New WebClient()
    3. Dim LinesServer = WebClient_Check.DownloadString("http://... /Update/Server.txt").Split({vbCrLf}, StringSplitOptions.RemoveEmptyEntries)
    4. Dim ServerList As New List(Of ProgramInfo)
    5. For Each Line In LinesServer
    6. Dim Parts = Line.Split({"="c, "_"c})
    7. Dim Info As New ProgramInfo()
    8. Info.Name = Parts(0)
    9. Info.Version = New Version(Parts(1))
    10. Info.Link = New Uri(Path.Combine("http:// ... /Update/", Parts(2)))
    11. ServerList.Add(Info)
    12. Next
    13. Dim LinesClient = File.ReadAllLines(Application.StartupPath & "\Version.txt")
    14. Dim ClientList As New List(Of ProgramInfo)
    15. For Each Line In LinesClient
    16. Dim Parts = Line.Split({"="c, "_"c})
    17. Dim Info As New ProgramInfo()
    18. Info.Name = Parts(0)
    19. Info.Version = New Version(Parts(1))
    20. Info.Link = New Uri(Path.Combine("http:// ... /Update/", parts(2)))
    21. ClientList.Add(Info)
    22. Next
    23. Dim Result = From i1 In ServerList Join i2 In ClientList On i1.Name Equals i2.Name Where i1.Version > i2.Version Select i1
    24. End Sub


    In der Version.txt steht:

    Programmdatei.exe=1.0.0.0_Programmdatei.exe
    Launcher.exe=1.0.0.0_Launcher.exe

    und in der Server.txt steht:

    Programmdatei.exe=9.9.9.9_Programmdatei.exe
    Launcher.exe=9.9.9.9_Launcher.exe

    Wieso lädt er jetzt nicht die aktualisierten Dateien vom Server? (Eine Fehlermeldung bekomme ich nicht, wie gesagt, ich drücke aber nichts passiert ...)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Wo lädt er jetzt die aktualisierten Dateien vom Server?
    Das frage ich dich!
    Weil Ich sehe nur, dass 2 Listen befüllt werden, sowie eine Result-Query wird mit Linq erstellt.


    Dein Abspeicher-Text-Format mittm '=' ist abwegig.
    '=' ist glaub weltweit das Zeichen zur Zuweisung von Properties - bei dir wirds als Spaltentrenner mißbraucht.
    Nimm Csv - wenn du garantieren kannst, dass keine Datumse zu persistieren sind, und dasses bei dieser einen Tabelle bleibt.
    Andernfalls Serialisierung oder typisiertes Dataset.


    Ich nehme übrigens an, dass du kein Bock hast, typDataset zu erlernen, denn sonst hättestes bereits verwendet

    Aber wassis mit Manjawirms üblichen Einwurf an dieser Stelle: "mein Gott - frickelt euch keine eigenen Updater zusammen, sondern nehmt professionelle Opensource!"?

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

    Das habe ich zu dem Code geschrieben:
    result enthält dann alle Programme, für die eine neue Version vorliegt.
    Da habe ich auch nichts davon gesagt, dass das auch gleich gedownloaded wird, davon bist du scheinbar einfach so ausgegangen. Und du hast dir offensichtlich den Code auch gar nicht angesehen, sonst wäre dir nämlich aufgefallen, dass da gar kein "DownloadFile" drin vorkommt.
    Heute morgen, nachdem mein ich mein PC ausgeschaltet habe habe ich nochmal drüber nachgedacht warum das nicht geht, und da ist mir auch eingefallen das ja gar kein DownloadFile im Code war :D Lag wohl daran das ich schon ziemlich müde war.

    Das was ich jetzt noch hinbekommen muss ist, das er alle Links runterlädt die er eingetragen hat.
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Wie @ErfinderDesRades: schon richtig anmerkte, ist es für die Nutzer unter Umständen sehr gefährlich einen Updater zu benutzen, welcher ohne Integritäts und Signaturprüfung der Dateien auskommt.
    Wenn du nicht im Stande bist, eine passende Signaturprüfung einzubauen, nimm BITTE einfach das UpdateSystem.net.
    updatesystem.net/

    Das funktioniert ganz einfach und ohne viel Gefrickel, ist für dich und auch deine Nutzer einfacher.

    Viele Grüße,
    Manawyrm

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