[.NET] C# - Server auf neue Version überprüfen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von CHied, 19. April 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 19. April 2008
    C# - Server auf neue Version überprüfen

    Hallo zusammen

    Ich würde gerne bei einem Programm einbauen, dass man auf einen Knopf klicken kann, welcher dann auf einem definierten Server schaut, ob es eine neue Version gibt.

    Auf meinem Webserver liegt eine Text-Datei "version.txt". Dort drin steht nur eine Zahl, nämlich die aktuellste Version (z.b. "1.2").

    Nun kenne ich mich mit den Möglichkeiten von C# noch nicht sehr gut aus, deswegen habe ich mich dem einfachen FileStream/StreamReader bedient.

    Der Code schaut im Moment folgendermassen aus:
    Code:
     string dateipfad = @"http://meinserver/version.txt";
    double version_server;
    
    FileStream fs = new FileStream(dateipfad, FileMode.Open, FileAccess.Read);
    StreamReader reader = new StreamReader(fs);
    version_server = Convert.ToDouble(reader.ReadLine());
    reader.Close();
    fs.Close();
    
    if (version_client < version_server)
     {
     //Neue Version verfügbar
     }
    
    else
     {
     //Keine neue Version verfügbar
     }
    Beim Debuggen erhalte ich den Fehler, dass "URI-Formate nicht unterstützt werden". Also denke ich, FileStream funktioniert nicht mit URLs...

    Nun meine Frage:
    Was muss ich am Code ändern, damit die Versionsabfrage auf rudimentäre Weise funktioniert? Oder wie löst man das ganze eleganter?

    Bin für jede brauchbare Antwort dankbar!
    Gruss CHied
     
  2. 19. April 2008
    AW: C# - Server auf neue Version überprüfen

    ich kann zwar kein C# aber VB.net. Die sprachen sind ja ähnlich. Da müsste das so aussehn.
    Code:
    Imports System.Net
    Private Sub CheckVersion(ByVal version as String)
    Dim webclient As New WebClient
    Dim address As Uri
    Dim newver as String
    adress = "http://meinserver/version.txt"
    newver = webclient.DownloadStringAsync(address)
    If version <> newversion Then
    'Deinupdatecode
    else
    MsgBox "Die Software ist auf dem neusten stand"
    End IF 
    End Sub
    
    Ist ungetestet. Kannsts ja versuchen mit nem Converter auf C# zu wandeln.
     
  3. 19. April 2008
    AW: C# - Server auf neue Version überprüfen

    Die einfachste Lösung für dein Problem ist ein WebRequest, bzw FtpWebRequest.

    Edit: Wie MasterJulian es schon geschrieben hat geht der WebClient natürlich auch.
    Ich verwende hauptsächlich den WebRequest
     
  4. 19. April 2008
    AW: C# - Server auf neue Version überprüfen

    Vielen Dank an euch beide, habe den folgenden Code "erarbeitet":

    Code:
    server = @"http://meinserver/version.txt";
    
    // Die Anforderung erstellen.
    WebRequest requestVersion = WebRequest.Create(server);
    
    // Die Antworten abrufen.
    // Hierfür ist besonders dann sehr viel Zeit erforderlich,
    // wenn die Datei groß ist, da die gesamte Antwort abgerufen wird.
    WebResponse responseVersion = requestVersion.GetResponse();
    
    // Den Antwort-Stream lesen.
    StreamReader r = new StreamReader(responseVersion.GetResponseStream());
    double version_server = Convert.ToDouble(r.ReadToEnd());
    r.Close();
    
    // Den Text anzeigen.
    if (version_client < version_server)
     {
     //Neue Version verfügbar
     }
    
    else
     {
     //Keine neue Version verfügbar
     }
    -> Closed.
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.