myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » Einfacher Updater für Programme
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Einfacher Updater für Programme

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
stes stes ist männlich
myCSharp.de-Mitglied

avatar-3381.png


Dabei seit: 07.12.2010
Beiträge: 64
Entwicklungsumgebung: Visual Studio 2010 Express


stes ist offline

Einfacher Updater für Programme

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.

C#-Code:
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
23.07.2011 22:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Floste
myCSharp.de-Mitglied

avatar-2376.jpg


Dabei seit: 13.06.2007
Beiträge: 1.130
Entwicklungsumgebung: VS 2008
Herkunft: Norddeutschland


Floste ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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 unglücklich

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Floste am 23.07.2011 23:56.

23.07.2011 22:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
herbivore
myCSharp.de-Poweruser/ Experte

avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 49.474
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin


herbivore ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

Zitat:
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
23.07.2011 22:46 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
stes stes ist männlich
myCSharp.de-Mitglied

avatar-3381.png


Dabei seit: 07.12.2010
Beiträge: 64
Entwicklungsumgebung: Visual Studio 2010 Express

Themenstarter Thema begonnen von stes

stes ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
23.07.2011 22:59 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 8 Jahre.
Der letzte Beitrag ist älter als 8 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 27.05.2020 08:27