Eigene Updatefunktion erstellen?

  • Hallo,

    ich weiß jetzt nicht ob es hier reinpasst.
    Also bis jetzt hatte ich bei meinen Programm die folgende Updatefunktion benutzt:
    Mit FileGetVersion und per IniDatei im Internet, wird verglichen, ob es eine neuere Version vorhanden ist. Das klappt soweit gut, aber wenn neue Komponente dazu kommen, ist das Updaten mit dieser Variante ein Problem...

    Welche Variante würdet Ihr dafür benutzen? Mit fehlt leider der Ansatz...

  • mein updater liest die komponenten die zur neuen version gehören aus der ini aus und kopiert sie entsprechend den pfaden in der inidatei in das verzeichnis

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Also überprüft Dein Updater lokal, ob die Datei exisitiert und die Version? :)
    Wenn ja, ist die Idee nicht mal soo schlecht ;) .

    Ich hatte gerade eine Idee zum Updaten:

    Mein Programm lädt eine gezippte Datei herunter und entpackt sie. Dabei werden einfach alle vorherigen überschrieben. Die gezippte Dateien befinden sich auf einer Webspace mit folgenden Namen:

    Update_1.7z
    Update_2.7z
    usw..

    Wird ein Update heruntergeladen, wird die heruntergeladene Updatenummer in eine Ini eingetragen. Z.b. LastUpdate=2. Nach Updates wird dann so überprüft: InetGetSize(".....\Update_3.7z"). Ist diese nicht vorhanden, gibt es auch keine neue Version.

    Was haltet ihr von dieser Idee? Praktisch? Unpraktisch? :)

  • mein updater vergleicht die version in der ini und die die meiner .exe alle dateien die zum programm dazugehören liegen in einem ordner auf dem ftp svr
    in der ini steht dann welche dateien heruntergeladen werden müssen und wo sie hingehören.
    meine ini sieht z.b. so aus:
    [ftp]
    file=/update/zusatz1.file
    file=/update/zusatz2.file
    file=/update/zusatz3.file
    [lokal]
    zusatz1.file=@sd\addons\zusatz1.file
    zusatz2.file=@sd\addons\zusatz2.file
    zusatz3.file=@sd\addons\zusatz3.file

    der updater schaut welche files da in der ini aufm ftp liegen und lädt diese erstmal in den temp runter dann kopiert er sie entsprechend [lokal] (@sd wird einfach mit @ScriptDir ersetzt ;) ) klappt eig. wunderbar so. Komplizierter wirds wenn dein programm z.b. ne options.ini hat wo der user einstellungen hat und du die nicht überschreiben möchtest.
    Den Fall hatte ich einmal war en bissl ne wurschtelei aber es ging eig. ;)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Kopiert von meinem HastyNotes,
    funktioniert einwandfrei.

    Infos zur Txt etc kannste abrufen wenn du die txt
    selbst aufrufst, falls du sehen willst wie sie aussehen muss.
    (http://sen.pytalhost.de/HastyNotes/Update.txt)


    Spoiler anzeigen
    [autoit]


    InetGet("http://sen.pytalhost.de/HastyNotes/Update.txt", @TempDir & "\Update.txt", 1, 0)
    $UpdateFile = FileOpen(@TempDir & "\Update.txt", 0)
    $UpdateLine = FileReadLine($UpdateFile, 1)
    If $UpdateLine = $Version Then
    FileClose($UpdateFile)
    FileDelete(@TempDir & "\Update.txt")
    MsgBox(64, "Update HastyNotes", "Sie benutzen die" & @CRLF & "Aktuelle Version " & $Version)
    Else
    MsgBox(0, "Update HastyNotes", "Eine neue Version von HastyNotes ist verfügbar." & @CRLF & "Sie befindet sich nun in ihrem HastyNotes Ordner")
    InetGet("http://sen.pytalhost.de/HastyNotes/HastyNotes " & $UpdateLine & ".zip", "HastyNotes " & $UpdateLine & ".zip", 1, 0)
    FileClose($UpdateLine)
    FileDelete(@TempDir & "\Update.txt")
    EndIf

    [/autoit]