| Autor |
Beitrag |
majolo
      
Beiträge: 334
Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
|
Verfasst: Di 01.10.02 18:55
Hallo erstmal!
Ich möchte gerne Wissen,was es für Möglichkeiten gibt seine eigens programmierte Software upzudaten.Ich möchte nämlich eine Schnittstelle in meine Software einbauen, dass diese, am besten mit eine Scriptdatei, upgedatet wird.Nach dem Update sollte auch in einer Liste nachvollzogen werden können,was gupdatet wurde. Habe jedoch keine Ahnung wie so etwas zu realiseren ist?
Gruss
majolo
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 02.10.02 07:03
| majolo hat folgendes geschrieben: | | Ich möchte gerne Wissen,was es für Möglichkeiten gibt seine eigens programmierte Software upzudaten. |
Upgrade veröffentlichen, Patch veröffentlichen, selbstentpackendes Archiv zum "Drüberkopieren" veröffentlichen ...
| Zitat: | | Ich möchte nämlich eine Schnittstelle in meine Software einbauen, dass diese, am besten mit eine Scriptdatei, upgedatet wird. |
Warum mit Skript? Ein Menüpunkt unter "Hilfe", der sich z.B. "nach Update suchen" nennt o.ä. würde schon reichen. Ich würde die Updatefunktion allerdings in ein separates Programm auslagern, damit du dein Hauptprogramm beenden und ebenfalls aktualisieren kannst.
| Zitat: | | Nach dem Update sollte auch in einer Liste nachvollzogen werden können,was gupdatet wurde. |
Klingt wie eine normale LOG-Funktion.
| Zitat: | | Habe jedoch keine Ahnung wie so etwas zu realiseren ist? |
Die Kurzfassung:
- Der User startet über besagten Menüpunkt (oder wie auch immer) das Updateprogramm.
- Das Updateprogramm kennt alle Kernkomponenten deiner Anwendung und beendet sie, bzw. entfernt DLLs aus dem Speicher usw.
- Das Updateprogramm holt sich eine Liste mit Aktualisierungen aus dem Web, bzw. von irgendwo auf dem Rechner - falls der User dein Update bereits heruntergeladen hat.
- Die Dateien werden gemäß der Liste gelöscht, hinzugefügt oder eben aktualisiert. Kann eine Datei nicht aktualisiert werden -weil sie trotz Beenden immer noch aktiv zu sein scheint- ist sie mit einem temporären Namen in das Anwendungsverzeichnis zu kopieren und in der "wininit.ini" zum Umbenennen einzutragen. Gleichzeitig muss ein Reboot-Flag gesetzt werden.
Jede Aktion (löschen, hinzufügen, aktualisieren) ist in einem LOG (normale Textdatei) festzuhalten.
- Ist das Reboot-Flag gesetzt, muss nach der Aktualisierung eine Meldung erscheinen, dass ein Neustart erforderlich ist, damit die noch benutzten Dateien auch aktualisiert werden können.
Dieser Neustart ist dann auch durchzuführen.
Habe ich was vergessen?
PS: Ja, ich habe was vergessen. Es kommt nämlich auch auf den Installer an, den du (evtl.) verwendest. Der MSI beispielsweise bietet bereits eine Patchschnittstelle, d.h. wenn deine Anwendung als MSI-Datei zu installieren ist, dann kannst du Updates, besser gesagt: Patches, für deine Anwendung als MSP-Dateien weitergeben und einspielen lassen.
Und Upgrades lassen sich sowohl "stand-alone" einspielen, sie sind aber auch als Update zu benutzen und entfernen vorhandene ältere Versionen automatisch.
Bei InnoSetup und InstallShield Express (das bei Delphi dabei ist) gibt´s diese Möglichkeit meines Wissens nach nicht.
|
|
majolo 
      
Beiträge: 334
Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
|
Verfasst: Mi 02.10.02 11:49
Danke, für den Anfang schon nicht schlecht.Wichtig ist mir jedoch, dass das Update nur eingespielt werden kann, wenn die Vollversion installiert ist.Ich habe jedoch ein Problem, wie ich absolut nicht weiß,dass zu realisieren.Mein Programm verwendet keine DLLs.Nur einige INI Dateien und halt die EXE.Nun mal ein ganz normales, banales Problem.Dient jetzt nur als Beispiel: Im Info-Fenster steht ein Label Version 1.0. Jetzt soll nach Update wie auch immer Version 1.1 da stehen. Nur als Beispiel. Das Fenster habe ich noch nicht mal programmiert kommt als aller letzte Form.
Wie ist denn so etwas anhand meines Beispiels zu realisiern.in der Log-Datei soll noch stehen: Bsp: Versionsänderung.
Gruss
majolo
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Mi 02.10.02 16:57
such am besten mal im forum, da agbs nämich schon mal ein paar gute lösungen !!!
(ich weiss, ich weiss, das "such mal im forum" ist zwar verpöhnt, aber was will man machen....)
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 02.10.02 19:20
| matze hat folgendes geschrieben: | | ich weiss, ich weiss, das "such mal im forum" ist zwar verpöhnt ... |
Ganz im Gegenteil, das ist endlich mal ein guter Ratschlag.
| majolo hat folgendes geschrieben: | | Wichtig ist mir jedoch, dass das Update nur eingespielt werden kann, wenn die Vollversion installiert ist. |
Präziser ausgedrückt: dein Update soll eine genau definierte vorhandene Version (z.B. 1.0) auf die nächste Version (z.B. 1.1) aktualisieren. Das wäre dann wohl ein Patch, der seine Aktualisierung auf der Basis der gefundenen Datei(en) vornimmt. Stimmt die gefundene Version einer Datei nicht mit der erwarteten überein, passiert auch nichts. (Im Normalfall.)
| Zitat: | | Ich habe jedoch ein Problem, wie ich absolut nicht weiß,dass zu realisieren. |
Es gibt fertige Lösungen, sogar mit Delphi-Quelltext. Allerdings solltest du der Versuchung widerstehen, so ein Programm als dein eigenes auszugeben. Nach deinem Posting + Outing würde dir das sowieso keiner glauben.
| Zitat: | | Mein Programm verwendet keine DLLs. |
Ich hatte das als Beispiel gemeint.
| Zitat: | | Wie ist denn so etwas anhand meines Beispiels zu realisiern.in der Log-Datei soll noch stehen: Bsp: Versionsänderung. |
Ja, dann sieh dir das hier an.
Du müsstest dich jetzt "nur noch" um die Downloadfunktion kümmern, bei der dein Programm den jeweils aktuellen Patch aus dem Netz holt und dann dafür sorgt, dass er eingespielt und deine Anwendung aktualisiert wird.
|
|
majolo 
      
Beiträge: 334
Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
|
Verfasst: Mi 02.10.02 20:44
Danke Mathias.So etwas habe ich gesucht.Sogar mit Source.
| Zitat: |
Es gibt fertige Lösungen, sogar mit Delphi-Quelltext. Allerdings solltest du der Versuchung widerstehen, so ein Programm als dein eigenes auszugeben. Nach deinem Posting + Outing würde dir das sowieso keiner glauben.
|
Dazu möchte ich nur sagen: Das hört sich an als ob ich irgend ein Kleinkrimineller bin und die Werke anderer nicht respektiere.Natürlich werde ich das Programm nicht als mein eigenes ausgeben.Soviel Ehre habe ich, dass ich anderen Leuten nicht ihre Arbeit klaue. Nehme ja auch nicht die Mona Lisa und verkaufe das als mein eigenes Gemälde  .
Schönen Abend noch
Gruss
majolo
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Do 03.10.02 07:10
@ mathiassimack: der UpdateMaker ist ja echt fit !!!! Super !!!
Sowas hab ich auch schon gesucht !!!! Und die seite ist auch nicht schlecht !!!
danke
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 03.10.02 08:02
| majolo hat folgendes geschrieben: | | Dazu möchte ich nur sagen: (...) |
Es war nicht auf dich bezogen. Aber solche Fälle gibt´s leider. Da posaunt irgendwer heraus, was für ein Super-Programm er plant, und dass er schon ein paar Ideen hätte ... und outet sich dann, indem er einem anderen ´ne Mail schreibt und um den Source für dieses Super-Programm bittet.  Da weiß man doch, welche Motivation dahinter steht.
Wie gesagt: du warst nicht gemeint. Sonst hätte ich den Smiley hier  ja auch nicht angehangen. Aber, wenn du mal ein Bild von der Mona Lisa hast, dann schick´s ruhig her ...
@all -
Der UpdateMaker ist natürlich ´ne feine Sache. Im Idealfall hast du einen Patch, der ein paar KB groß ist. Die Version, die ich damals hatte, war allerdings nicht so gut. Das Setup war VCL - ich hab´s von 300k auf ca. 60k runtergedreht.
Und wenn beim Patchtyp "all or nothing" ein Fehler beim Aktualisieren auftrat, dann wurden zwar alle gemachten Änderungen zurückgenommen, aber bis dahin gelöschte Dateien waren verloren.
Aus dem Grund habe ich damals den Source so geändert, dass er (aber nur beim genannten Patchtyp) alle zu löschenden Dateien an das Ende des Patches verschiebt.
Man müsste mal schauen, ob diese Problemchen bei der Version 1.07 behoben worden sind. Ansonsten wäre das noch eine Sache, die jeder selbst einbauen kann.
Vielleicht wäre auch ein Download-Setup von Interesse, das einen Patch von einer Webseite holt und einspielt.
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Do 03.10.02 10:26
also das mit dem web patch wäre echt ne feine sache !!!
einfach die patchdatei hochladen und schon kann man man z.b. automatisch eine neue version einspielen..... 
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
majolo 
      
Beiträge: 334
Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
|
Verfasst: Do 03.10.02 10:46
Also ich finde den Updatemaker auch klasse, um meine in arbeit befindliche Software upzudaten.Evtl. werde ich ihn noch auf meine Bedürfnisse etwas zuschneiden.Aber ist wirklich klasse die Software.
Gruss
majolo
|
|
|