Frage o0 Update in ein Tool einbauen?

  • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="2"]Is eig ganz einfach.
    Als erstes brauchste ne Versionsnummer, mach die am besten gleich in Source rein.
    Dann bauste dir meinetwegen ne MySQL Tabelle wo die Info drin is oder, was ich eher sagen würde, ne datei mit ner Struktur die du dir ausdenkst.
    Beim start vom Prog die Datei laden, nachschaun ob die Version höher bzw anders is als die alte (evtl vll dafür sorgen dass es auch wirklich ne neue version is indem du die versionsnummer im tool splittest usw, wie auch immer)
    Sollte was neues vorliegen, so brauchste nur hinzugehn und dem nutzer zu melden, es wäre ein Update da.
    wenn ers bejaht, beende das aktuelle programm und starte nen updater, damit du auch deine richtigen programmdateien dann updaten kannst (einfach runterladen und überschreiben)

    So sollte deine Updatefunktion gehn, wies im Code aussieht hab ich selber keine ahnung, da ich sowas in C#/VB bzw generell in .NEt noch nich gemacht hab und mir dazu die Methoden nicht bekannt sind.
    Daher kann ich dir leider keinen VB Code geben.[/SIZE][/COLOR][/FONT]

  • [FONT="Trebuchet MS"][COLOR="LemonChiffon"][SIZE="2"]

    PHP
    Dim AktuelleVersionsNummer As String = "1"
            Dim wclient As New Net.WebClient
            Dim VersionsNummer As String = wclient.DownloadString("http://www.meinWebspace.de/version.txt")
    
    
            If VersionsNummer <> AktuelleVersionsNummer Then
                Update()
            End If

    Ist ein bisschen schlampig mit dem String kann man auch als integer definieren.[/SIZE][/COLOR][/FONT]

    [CENTER]

    [/CENTER]

  • naja ist gut aber warum so schwer
    mach doch die Versions nummer deklaration gleich so

    man mimmt einfach
    ein StatusStrip1 dazu haut man einfach
    ToolStripStatusLabel1

    code Kann wie folgt aussehen

    PHP
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ToolStripStatusLabel1.Text = "App Version: " & Application.ProductVersion
    Checkversion()
        End Sub

    bild zum Code

    so um die version zuvergleichen

    PHP
    Private Sub Checkversion()
            Dim httpclient As New WebClient
            Dim newversion As String = httpclient.DownloadString("link zu deiner versions.txt")
            If ToolStripStatusLabel1.Text > newversion Then
                'Verbinung zum Private Sub des Updaters
                MsgBox("Neu version")
            End If
        End Sub

    bild zum 2 code

    ich denke das sollte sich alles von Allein Klären :)
    die Versions nummer kannste ändern unter

    deine App -> eintellung->Anwendung->Assemblyinfomation

    deine Version text sollte so ca aus sehen
    1.0.3.0

    und schon hast du denn vergleich fertig ^^

    Fast vergessen
    über form1
    Imports System.Net

    [CENTER]
    [/CENTER]

  • der updater muss als extra exe geschrieben werden die z.b. in die resseurcen des programmes kommt
    dann kommt in die update version dieser code:

    Code
    If My.Application.Info.Version.ToString = New Net.WebClient().DownloadString("Adresse zu einer trextdatei in der die vedrsion steht z.b. http://lol.de/version.txt die den text 1.0.0.0 enthält") Then
                If MessageBox.Show("Neue version verfügbar Download?", "Neue Version", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Yes Then
                    Shell(My.Application.Info.DirectoryPath + "\Name des update programmes " + Application.ExecutablePath + " Download Link der neuen datei", AppWinStyle.NormalFocus)
                End If
            End If

    dann in das update programm

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



  • [FONT="Trebuchet MS"][COLOR="LemonChiffon"][SIZE="2"]Finde euren Code sehr umständlich.
    Deshalb hab ich auch mal was geschrieben:

    Hauptprogramm.exe (Komm in das Form_Load Event)

    PHP
    Dim wc As New WebClient
    Dim actualversion As String = wc.DownloadData("Http://meinWebspace.de/update.txt")
    If actualversion <> "1.0" Then
    Process.Start("Update.exe")
    End If
    MessageBox.show("Es wird ein Update ausgeführt.")

    Update.exe (Consolen-Anwendung)

    PHP
    File.Delete("Hauptprogramm.exe")
    Console.WriteLine("Die Alte Version wurde gelöscht!")
    My.Computer.Network.DownloadFile("http://meinWebspace.de/Hauptprogramm.exe", "Hauptprogramm.exe", "Benutzername", "Passwort")
    Console.WriteLine("Erfolgreich Geupdatet!")
    Console.WriteLIne("Starte neue Version beim Druck von Enter!")
    Console.Readkey()
    Process.Start("Hauptprogramm.exe")

    Wenn man jetzt eine neue Versions seines Programmes rausbringen möchte schreibt man in die Zeile
    anstatt "1.0" -> "2.0".
    Auch die Versionsnummer in der txt.-Datei muss angepasst werden.

    Hab das ganze ausm Kopf geschrieben,
    könnten Fehler drin sein.[/SIZE][/COLOR][/FONT]

    [CENTER]

    [/CENTER]

  • naja fixed
    du Änderst 1 zahl und die TXT datei

    Ich änder auch nur laut meinem Code oben auch nur 1 zahel und die txt datei
    also denke ich nehmen sie die beiden versionen ob deins oder meins nicht al zuviel

    einer kommt mit deiner version klar
    andere mit meiner

    Und mit meiner version komme ich perfekt klar
    denn sehe ich wenigsten selber bei welcher version ich stehe

    deine version ist gut
    edit ich habe ja nur die Version vergleichung gepostet
    da ich meinen Updater noch nicht fertig habe damit er perfekt arbeitet

    mit Progressbar und son zeug alles

    [CENTER]
    [/CENTER]

  • nun ja bei meiner version hat man den meisten frei raum zum ändern
    das update programm kann wo ganz anders liegen und auch der download link kann sich ändern aber mein code lässt sich durch ein paar zeilen anpassen
    ihr geht davon aus es gibt nur einen download link und der updater liegt im gleichen ordner
    man kann den updater auch zuerst von der wabspace ins tmp verzeichnis downloaden und dann ausführen
    bei meiner version kein problem

    SChwarzeSeeIe
    deiner ist einfach zu umständlich mit dem strip

    Fixed
    deiner ist zu fest gelegt auf den dll und er updatet automatisch selbst wein keine inet verbindung da ist löscht er die datei und wenn man kein update will weil einfach kein inet da ist dann hat man kein programm mehr
    ausserdem nerft downloadfile bei mehr als5 mb files weil einfach das programm einfirert

    Zitat von Steve Jobs

    Stay hungry - stay foolish.




  • bei dir kommt ein fehler help <.<


    Hier:
    Module Module1

    pls help <.<

  • das ist der komplette code für das projekt
    erstelle ein neues projekt vom type consolen anwendung und lösch alles und kopier meinen code rein

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!