Ich möchte hier eins meiner Projekte vorstellen.
Es ist eine Update-Komponente.
Geboren wurde die Idee deswegen: Ich habe mehrere Projekte die alle Selbst-Updatefähig sein sollen. Für jedes Programm musste ich dann die Updateroutine neu schreiben. Das war mir zu umständlich und ich habe es immer mehr modularisiert. Letztlich soweit, dass nur noch eine DLL in ein Projekt einzubinden ist, ein Objekt zu erzeugen und schon kann man mit zwei Zeilen den Updatevorgang starten.
Was sonst noch benötigt ist: ein Server, der die aktuellen Dateien hält und ein kleines PHP-Skript. Alles natürlich im K_Updater mitgeliefert.
Der Programmierer kann somit auf einfache Art und Weise sein eigenes Programm Selbst-Update-Fähig machen.
Weitere Funktionen:
- Backup der Dateien vor jedem Updatevorgang, so dass im Fehlerfall der Urzustand wiederhergestellt werden kann.
- Statistiken: Auf Wunsch können Statistiken mitgeloggt werden: wie oft wurde eine Updateanfrage gestellt, wie oft wurde ein Update durchgeführt.
- Lokalisierung (derzeit Deutsch/Englisch)
Ein kleines Video dazu habe ich hier gemacht:
www.klausmoster.de/Sonstiges/K_Updater.avi
Das Fenster während dem Updatevorgang ist schon Bestandteil des K_Updaters.
Es sind im besten Falle nur etwa folgende Zeilen nötig:
Zunächst werden die Einstellungen festgelegt und ein Updater-Objekt erzeugt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| String[ ] k_Settings = new String[ 4 ]; k_Settings[ 0 ] = "http://www.klausmoster.de/Downloads/Software/clickfinderupdate/update.xml"; k_Settings[ 1 ] = Application.StartupPath; k_Settings[ 2 ] = "ClickFinder-OTR-Plugin Update"; k_Settings[ 3 ] = "de";
UCheck = new UpdaterCheck.UpdaterCheck( k_Settings ); |
Nun werden die Prozesse hinzugefügt, die vor dem Updatevorgang beendet werden und nach dem Updatevorgang gestartet werden sollen:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| String addProgramm = "ClickFinder-OTR-PlugIn"; UCheck.addProgramToKill( addProgramm );
UCheck.addProgramToRun( Application.StartupPath + "\\ClickFinder-OTR-PlugIn.exe", "" ); |
Das wars schon.
Anschließend kann man mit:
C#-Quelltext
1: 2:
| int intFilesToUpdate = UCheck.Check( ); |
nach Updates suchen. Zurückgegeben wird die Anzahl der zu aktualisierenden und neuen Dateien.
Mit
C#-Quelltext
startet man den Updatevorgang dann letztlich.
Vllt kann sowas der ein oder andere von euch ja gebrauchen.
Projekthomepage:
www.klausmoster.de/i...KUpdater&sD=true
Moderiert von
Christian S.: Info-Feld gesetzt