Laden...

Einfacher Updater für Programme

Erstellt von stes vor 12 Jahren Letzter Beitrag vor 12 Jahren 5.502 Views
stes Themenstarter:in
64 Beiträge seit 2010
vor 12 Jahren
Einfacher Updater für Programme

Beschreibung:

Ein kleines Code-Snippet zum Aktualisieren von Programmen.
Zur Benutzung wird das eigentliche Programm auf einem öffentlichen Server abgelegt (ich nutze hierzu meine Dropbox). Die URL der Datei wird der Konstanten "URL" zugewiesen.

Zum Starten des Programms wird dann zunächst der Updater ausgeführt, der die aktuelle Version vom Server lädt und anschließend ausführt.
Wer eine ausführlichere Lösung sucht, sollte sich vielleicht das updateSystem.NET anschauen.


using System;
using System.Net;
using System.Windows.Forms;
using System.Diagnostics;

namespace Updater
{
    class Program
    {
        const string URL = "insert url here";
        const string APPLICATION_NAME = "filename.exe";

        static string fullPath = Application.StartupPath + "\\" + APPLICATION_NAME;

        static void Main(string[] args)
        {
            Console.WriteLine("Downloading file...");
            WebClient myClient = new WebClient();
            try
            {
                myClient.DownloadFile(URL, fullPath);
            }
            catch (WebException e)
            {
                Console.WriteLine("Download failed. Try again later.\n"+
                                  "Press ENTER to exit");
                Console.ReadLine();
                return;
            }
            Console.WriteLine("Successfully downloaded file, press ENTER to continue");
            Console.ReadLine();
            Process.Start(fullPath);
        }
    }
}

Schlagwörter: Update, Download, Aktualisieren, WebClient

1.130 Beiträge seit 2007
vor 12 Jahren

Eigentlich lädt dein code nur eine datei aus dem netz runter. Es steckt aber noch einiges mehr dahinter.
1.) Application.StartupPath ist nicht immer ein besonders guter ort, um soeine datei zwischenzuspeichern
2.) Einen updater verstehe ich so, dass er nur updated, wenn es auch was zu updaten gibt -> Prüfung fehlt
3.) Bei sowas sind signaturen sehr zu empfehlen. Eine bekanntere software hat mal ihre webseite geändert, woraufhin dann nicht so ganz seiöses update aus dem netz geladen wurde, was für den nutzer aber nicht erkennbar war, bis es schon zu spät war... Leider auch bei mir 🙁

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo zusammen,

Eine bekanntere software hat mal ihre webseite geändert, woraufhin dann nicht so ganz seiöses update aus dem netz geladen wurde, was für den nutzer aber nicht erkennbar war

um das noch zu ergänzen Updatemechanismus... Prinzipielle Bedenken? [==> Ja]

herbivore

stes Themenstarter:in
64 Beiträge seit 2010
vor 12 Jahren

Hallo Floste und herbivore,

erstmal danke für eure Antworten.

@Floste:

bzgl. 1) Den genauen Pfad kann man ja beliebig auf seine Bedürfnisse anpassen, meinetwegen lagert man das ganze in einen zusätzlichen Ordner aus.
bzgl. 2) Das ist auf jeden Fall richtig, dann ist es eben ein "Downloader" ^^
bzgl. 3) Für "bekanntere Software" ist es sicherlich auch nicht empfehlenswert, ein solch simples Code-Snippet als vollwertigen Updater (oder: Downloader 😉 ) darzustellen.

Alles in allem ist das hier ein simples Snippet, an das man keine allzu großen Anforderungen stellen sollte. Natürlich gibt es etliche Möglichkeiten, das Programm zu verbessern (Downloadstatus & Dateigröße anzeigen, nur neuere Versionen downloaden etc.)

Um auf herbivores "Prinzipielle Bedenken" einzugehen: Ich stimme Dir in einigen Punkten zu (ich nutze z. B. auch öfters ältere Programmversionen). Persönlich habe ich das Programm bisher (leicht abgewandelt) für kleinere Projekte (in der Entwicklungsphase) genutzt, um nicht ständig manuell die Dateien runterladen zu müssen. Es handelte ich hierbei vorwiegend um Anwendungen, die in irgendeiner Form etwas mit Netzwerk zu tun hatten (z. B. ein Chat oder auch ein Multiplayer Spiel). Für sowas ist ein solcher Updater meiner Meinung nach ganz nützlich.

Gruß
stes