Automatisches Updaten per FTP server

02/02/2013 02:15 EisKaffee"#1
hi!

Ich wollte für ein Tool von mir ein automatisches update system einrichten, wie funktioniert das?

Habe nen ftp-server
Habe filezilla

Hab mal gehört funktioniert so das man einfach seine exe auf den Server schmeißt und eine .txt datei mit der versionsnummer.

Kann mir einer das aber bitte nochmal genauer erklären?
Vielen Dank :)
02/02/2013 08:55 reCougar#2
Also erstens ist das die falsche Sektion, zweitens ich weiß nicht welche Sprache du meinst.
In Worten: Du erstellst dir am Anfang in der exe welche geupdated werden soll einen Webclient. In C# wäre es so Webclient web = new Webclient(). Danach brauchst du das Form_Load Event. Dort ladest du dir den String von der txt Datei mit der Version hinunter. In C#: string version = web.Downloadsring(Die Url als String). Damach fragst du mit der if Abfrage ab ob der string der Version = der Version der Exe ist.
Wenn es falsch ist ladest du die Datei hinunter und speicherst sie im selben Ordner wie die exe.
02/03/2013 12:12 xCore?#3
Du bist hier Falsch.

In welcher Sprache willst du das realisieren?
Mit vb.net geht es z.B. so:
Code:
Imports System.Net

Public Class Form1
    Private WithEvents httpclient As WebClient
    Dim Pfad As String = Nothing

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Hide()
ShowDialog:
        SaveFileDialog1.ShowDialog()
        If SaveFileDialog1.FileName = Nothing Then
            GoTo ShowDialog
        End If
        Pfad = SaveFileDialog1.FileName

        Try
            Me.Show()
            httpclient = New WebClient
            Dim URL As String = "Link zur neuen .EXE"
            Application.DoEvents()
            httpclient.DownloadFileAsync(New Uri(URL), Pfad)
            Application.DoEvents()


        Catch ex As Exception
            MsgBox("Es ist folgender Fehler aufgetreten:" & vbNewLine & ex.ToString, MsgBoxStyle.Critical, "Fehler!")
            End
        End Try
    End Sub

    Private Sub httpclient_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles httpclient.DownloadFileCompleted
        MsgBox("Die aktuelle Version der Anwendung wurde im angegebenen Verzeichnis gespeichert", MsgBoxStyle.Information, "Update erfolgreich")
        Shell(Pfad)
        End
    End Sub

    Private Sub httpclient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles httpclient.DownloadProgressChanged
        Me.ProgressBar1.Value = e.ProgressPercentage
        Dim totalbytes As Double = e.TotalBytesToReceive / 1024
        Dim bytes As Double = e.BytesReceived / 1024
        Me.Label1.Text = bytes & "KB von" & totalbytes
    End Sub
End Class
02/04/2013 09:06 EisKaffee"#4
Ist geschafft :) Kann geclosed werden :)