Jeder, der schon einmal ein Programm geschrieben hat, um es anderen Leuten bereitzustellen, kennt sicherlich das Problem: Wie kann man die Benutzter des Programms mit regelmäßigen Updates versorgen, ohne immer eine neues Setup-Programm zu schreiben, das die Benutzer auch noch ausführen müssen. Auf Grund dieser Problematik habe ich mir die Gedanken gemacht, wie man das mit C# einfach lösen kann. Ich habe mich für C# entschieden, da es endlich mit C# einfach und überschaubar ist, eine grafische Benutzeroberfläche zu Programmieren und dort eine Update-Routine erst richtig zum Einsatz kommen kann.  Leider funktioniert der momentane Stand nur in einem lokalen Netzwerk, aber ich bin gerade dabei, die Klasse für ein Web-Update zu erweitern.  Wenn man dennoch bei dieser Klasse als Server-Pfad eine Webadresse angibt, dann bricht das Programm mit einer Fehlermeldung ab. Um die Klasse verwenden zu können, müssen nur ein paar Zeilen Code in das Programm eingefügt werden. Der folgende Code kann so kompiliert werden und ist funktionsfähig.
using System; using System.Collections.Generic; using System.Text; using S_MzH.Update; using System.IO; namespace UpdateTest { class Program { static void Main(string[] args) { // Hier soll die Update Klasse getestet werden. Update uFilesToUpdate = new Update (); string sServerPath = @"C:\Update\"; string sLocalPath = Path.GetFullPath(@".\"); uFilesToUpdate.AddFile("Test.txt", sServerPath, sLocalPath); uFilesToUpdate.AddFile("Test.exe", sServerPath, sLocalPath); // Natürlich kann hier auch noch ein wenig Code stehen ;-) if (uFilesToUpdate.CheckUpdate()) { // Wenn es ein Update gibt dann muss das Programm // an dieser Stelle auch nochmal beendet werden. uFilesToUpdate.UpdateFiles(true); Close(); } else { Console.WriteLine("Alle Dateien sind auf dem neusten Stand.\r\n"); Console.ReadKey(); } // Hier kann dann das Programm beginnen. } } }
Die Funktionen für das Update müssen NICHT direkt in der "main" stehen, sondern können an jedem beliebigen Punkt ausgeführt werden. Die Klassen gibt es hier: Update (ver 1.0)
|