Autor Beitrag
EvilMM
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 23.07.07 11:54 
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:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
// Erzeuge K_Update-Objekt
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:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
// Füge Abzuschießende Programme hinzu
String addProgramm = "ClickFinder-OTR-PlugIn";
UCheck.addProgramToKill( addProgramm );

//Füge zu startende Programme hinzu
UCheck.addProgramToRun( Application.StartupPath + "\\ClickFinder-OTR-PlugIn.exe""" );


Das wars schon.
Anschließend kann man mit:

ausblenden C#-Quelltext
1:
2:
// Suche nach Updates
int intFilesToUpdate = UCheck.Check( );


nach Updates suchen. Zurückgegeben wird die Anzahl der zu aktualisierenden und neuen Dateien.

Mit

ausblenden C#-Quelltext
1:
2:
// Starte Update
UCheck.DoUpdate( );


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 user profile iconChristian S.: Info-Feld gesetzt
Leuchtturm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Mo 23.07.07 13:11 
Klingt interresannt :zustimm: . Ich werde das bei nächster Gelegenheit mal ausprobieren

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.