eigene Updatefunktionalität einbauen .... Ideen?

  • Hallo,

    ich brauche mal ein paar Ideen wie ich folgendes realisieren könnte.

    Zum Hintergrund: Ich habe ein Tool geschrieben welches aus verschiedenen .exe-Dateien besteht und auf eine zentrale Datenbank zugreift. Dieses Tool wird wohl jetzt auch unter meinen Kollegen zum Einsatz kommen. Wenn das Tool aber erstmal in Umlauf ist, wird es schwierig, alle auf einem Stand zu halten. Ich werde ja weiter daran basteln um es immer weiter zu verbessern und neue Dinge einzubauen.

    Nun stell ich mir eine Freigabe im Netzwerk vor, welches nach Updates bei Programmstart durchsucht wird. Ich habe beim Kompilieren der Dateien auch eine Dateiversion eingegeben, die ich ja dann bei Veröffentlichung hochsetzen kann. Ist es möglich diese Version abzufragen und mit der bestehenden zu vergleichen oder sollte ich nach Änderungsdatum gehen, was meint ihr? Hat das vielleicht schon jemand umgesetzt?

    Würde mich über Meinungen und Ratschlägen sehr freuen ...


    gruß

    nasgul

    Einmal editiert, zuletzt von nasgul (22. Mai 2008 um 22:51)

  • Hi,

    du könntest ja im Script intern eine Variable mit der Versionsnummer setzen. Dann legst du dort wo das Update liegt eine Datei ab in der die aktuelle Versionsnummer steht. Vom script kannst du ja nun prüfen lassen ob die Versionsnummer anders ist, dann kannst du ja einen Updater starten der Dir die aktuellen Dateien kopiert.

    Gruß rabbit.

  • hi und danke für die antworten. also extra eine datei zu pflegen in der die nummern stehen will ich vermeiden. ich habe die dateien ja auf dem rechner im prgrammordner. nun habe ich auf dem netzwerkpfad nochmal die dateien nur das ich diese dann evtl. durch neue ersetze. ich stell mir das jetzt so vor, dass beim starten des programms die versionen der lokalen dateien mit denen im netz verglichen werden (auf`s netz soll per unc-pfad zugegriffen werden). die frage ist jetzt, wenn ich eine version angebe sieht die version etwa so aus: 1.0.0.0 die andere evtl. 2.0.0.0 ... nun müßte diese ja verglichen werden ..... oder wir nehmen das änderungsdatum .... die frage ist nun, was von beidem ich am besten/am einfachsten vergleichen kann und wie???

    was meint ihr?

    • Offizieller Beitrag

    Hi,

    Änderungsdatum ist meiner Meinung nicht schön.

    Du kannst deiner exe eine Version direkt mitgeben mit

    #AutoIt3Wrapper_Res_Fileversion=

    und diese dann z.B. so auslesen:

    [autoit]

    #include<Array.au3>
    Global $filePath = @WindowsDir & '\System32\calc.exe'
    Global $info = _getFileInfo($filePath)

    [/autoit][autoit][/autoit][autoit]

    If Not IsArray($info) Then
    MsgBox(16, 'Error', 'File not found!')
    Exit (0)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($info, 'FileInfo')

    [/autoit][autoit][/autoit][autoit]

    Func _getFileInfo($path)
    If Not FileExists($path) Then Return -1
    Local $info_A[12]
    Local $string_A[12] = ['FileVersion', 'FileDescription', 'LegalCopyright', 'Comments', 'InternalName', _
    'ProductName', 'CompanyName', 'ProductVersion', 'LegalTrademarks', 'PrivateBuild', 'OriginalFilename', 'SpecialBuild']
    For $i = 0 To UBound($info_A) - 1
    $info_A[$i] = FileGetVersion($path, $string_A[$i])
    Next
    Return $info_A
    EndFunc ;==>_getFileInfo

    [/autoit]

    Mega

  • hast recht, das mit dem datum ist keine schöne idee ... ich werds über die version lösen ... hab schon was getestet und läuft gut! danke dir!!!


    gruß

    nasgul

  • hi :)

    um die Versionsnummern zu verleichen gibt es schon ne fertige funktion :)

    [autoit]


    _VersionCompare

    [/autoit]

    ...nur fals du sie nicht schon selbst gefunden hast :D


    grez