Autor Beitrag
cromos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Mi 03.09.03 21:15 
Hallo,

also ich habe mir gedacht das ich den Anwender für meine Software ein Update Programm zum Download anbiete.
Das dies nur Leute nutzen sollten die schon einmal die Vollversion gekauft haben habe ich mir folgendes überlegt:

Das UpdateProg ist nur eine Exe, die aber das komplette neue Programm enthält. Also wenn der User das Update strartet soll das Prog schauen ob das Programm vorhanden ist z.b. ABC.EXE wenn nein, dann Meldung und Exit. Wenn ja, dann die Orginal ABC.EXE löschen, und das aktuelle Programm aus der Update.exe "transferieren" und als ABC.EXE speichern.

Weiss jetzt nicht ob ich mich verständlich ausgedrückt habe. Geht das überhaupt was ich mir da überlegt habe, oder nicht. Oder hat jemand eine einfachere Idee ein Update zu realisieren?????

Gruss
Cromos
ultra2k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

XP x64
D7 Enterprise
BeitragVerfasst: Mi 03.09.03 21:29 
Hast du nicht irgendwo Webspace??? Dann könntest du ein Live Update (sowas wie Windows halt) anbieten, wo der User sich mit seinen Registierungsdaten einloggt, hab ich mal gemacht...

_________________
...wenn NULL besonders groß ist, isses schon fast wie ein bisschen EINS!
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 03.09.03 23:12 
cromos hat folgendes geschrieben:
Oder hat jemand eine einfachere Idee ein Update zu realisieren?????

Ja, weil wir das Thema schon diverse Male hatten. www.delphi-forum.de/...mp;highlight=makeupd.

Bitte folge den Links, und du gelangst zu einem Programm, das a) Patches erstellt (sprich: nur die Unterschiede zwischen alter und neuer Version speichert), und b) ein einfaches Setup zum Einspielen dieser Patches zur Verfügung stellt. :)
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 04.09.03 10:06 
darf ich vielleicht noch auf den Patchmaker von Clickteam hinweisen?
Der gefällt mir persönlich sehr gut.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 04.09.03 10:13 
Hm, aber der kostet doch was. - Und bei MakeUpd liegen sogar die Sourcen bei, so dass man das "fette" VCL-Setup problemlos gegen eine schmalere Version austauschen kann.
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 04.09.03 10:29 
@Mathias, klar kostet der was, allerdings finde ich den echt sehr schick. Aber ich bin ja auch offen für neue sachen und schau mir gerade das MakeUpd an..

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 04.09.03 10:35 
ok, meine ersten updates habe ich jetzt gemacht. Ist allerdings nicht wesentlich kleiner, wenn ich mit einem update mehrere Versionen updaten will.... Oder habe ich da jetzt was verpasst? Und man muss das update programm mit ausliefern, oder?

Gruß
KEn

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Do 04.09.03 11:22 
Danke für die vielen Antwort,

werde mir mal die Programme ansehen.

Gruss
Cromos
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 04.09.03 11:34 
CenBells hat folgendes geschrieben:
ok, meine ersten updates habe ich jetzt gemacht. Ist allerdings nicht wesentlich kleiner, ...

Na ja, ist halt ein VCL-Setup. :) Ich hatte mal eine angepasste Version geschrieben, weil ich das Teil, das die Patches erstellt, furchtbar umständlich fand. Bei mir hast du zwei Verzeichnisse (alt vs. neu) ausgewählt, das Teil hat alle Dateien eingelesen und gleich in der Liste angezeigt. Dazu kam dann noch ein nonVCL-Setup mit (ich weiß nicht mehr genau) ca. 50k Größe. Das alles verpackt in eine Selbstentpacker-Exe (wie IExpress von Microsoft), und dann konnte das Patchen losgehen ... :wink:

Zitat:
wenn ich mit einem update mehrere Versionen updaten will....

Richtig, das mag sein. Das ist der Nachteil bei so einem kombinierten Patch, der mehrere Dateiinfos enthält. Da wären kleine Einzeldateien (wie etwa beim VPatch-Plugin für NSIS), die man dann in das Setup aufnimmt, besser. Klappt ein Patch nicht, versuchst du eben den nächsten, usw.

Zitat:
Und man muss das update programm mit ausliefern, oder?

Wenn du dieses Setup meinst: Ja, natürlich. Bei dem PatchMaker von ClickTeam ist das auch nicht anders, nur dass da die Patchinfos mit in der Exe stecken - ähnlich den Setups von Inno oder NSIS.

Gruß.
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Do 04.09.03 15:12 
Hallo,

als hab mal diese MakeUpdate ausprobiert, ich dachte damit könnte man
fertige Patch . EXE'en erstellen??! - Ist das nicht der Fall?
Bekomme da ja nur diese UPD Datei.

Dann muss ich ja immer die UDP Datei und den Patcher ausliefern?!!
Wollte alles in eine EXE haben.

Gruss
Cromos
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 04.09.03 16:28 
Warum erwähnst du das noch mal? Hat doch CenBells schon getan. Es gibt übrigens kostenlose Tools zum Packen von mehreren Dateien in eine selbstenpackende Exe. Ich benutze meist IExpress, das Teil des Internet Explorer Administration Kit (IEAK) ist.

Meines Wissens nach gibt es allerdings mitten zwischen den Sourcen von MakeUpd auch einen Exe-Loader. Einfach mal durchgucken.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 04.09.03 17:45 
MathiasSimmack hat folgendes geschrieben:
Meines Wissens nach gibt es allerdings mitten zwischen den Sourcen von MakeUpd auch einen Exe-Loader. Einfach mal durchgucken.

Oder mal in die Hilfedatei gucken: "Creating a Self-applying Update File".
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Fr 05.09.03 00:34 
MathiasSimmack hat folgendes geschrieben:
MathiasSimmack hat folgendes geschrieben:
Meines Wissens nach gibt es allerdings mitten zwischen den Sourcen von MakeUpd auch einen Exe-Loader. Einfach mal durchgucken.

Oder mal in die Hilfedatei gucken: "Creating a Self-applying Update File".


ja, leider ist das alles in Englisch.
Keine Ahnung wie das gehen soll.
Jedenfallss hört sich das ziemlich kompliziert an.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 05.09.03 07:58 
Da stellt sich mir (nicht zum ersten Mal) die Frage: Wie programmieren Leute wie du eigentlich, die kein Englisch können? Delphi ist immerhin auch Englisch. Und das Programm MakeUpd auch, aber na gut ... da könnte man mit wildem Herumprobieren noch Erfolg haben ... :roll: ... Aber egal - ich fasse es für dich mal zusammen
  • Du erstellst den Patch, so wie du das bisher gemacht hast
  • Dann gehst du in den Ordner von MakeUpd und rufst an der DOS-Kommandozeile auf
    ausblenden Quelltext
    1:
    copy /b updatesfxstub.exe + DeinUpdate.upd Selbststartende.Exe					

"UpdateSfxStub.exe" ist dabei der Starter, an den deine in Schritt 1 erstellte Updatedatei angehangen wird. Das passiert durch "copy /b" und das Plus. Ergebnis ist die selbststartende EXE-Datei, die dein Update enthält.

Jetzt noch mal: Wo war das was kompliziertes?

Gruß.
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Fr 05.09.03 10:51 
Hi,

also,

1. Kann ich englisch im Sinne von sich unterhalten ziemlich gut. Jedenfalls sagen das die Leute wenn ich im englischsprachigen Ausland bin.

Aber mit so extrem technischen Anleitungen habe ich manchmal meine Probs.

2. Stand da irgend was von Hardcoden und 2 o. 3 mal Kompilieren. etc.
Ausserdem kann ich UPDATESFXSTUB nicht kompilieren, da er mir immer eine Fehler anzeigt, soviel ich verstanden haben muss man da irgendwas ändern, aber wie ändern?...irgendwas
von länger der Datei / Pi * Daumen..... :wink:
Jedenfalls finde ich diese Anleitung alles andere als verständlich.
Darum frage ich ja.
Ausserdem bin ich Anfänger was Delphi betrifft, deshalb bitäääää nicht schimpfen :D

Gruss
Cromos
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Fr 05.09.03 11:01 
Hier das steht in der Hilfe:

Zitat:

Some special instructions need to be followed in compiling UpdateSFXStub. Your self-applying update needs to know where the executable ends, and where the updates begin. Right now, the way to do this is by compiling UpdateSFXStub with the length of itself harde coded in a constant SFXlength. This means you have to compile UpdateSFXStub twice, the first time to determine the executable length, the second time to store the executable length in the SFXlength constant. See the comments in the UnitSFX.Pas file for further details on this and how to ensure that the UpdateSFXStub is fairly small.

Note that once the UpdateSFXStub is properly compiled, you shouldn't have to compile it again. You can reuse the same executable to create all your self-applying update files.



Klasse. Die Worte verstehe ich, aber der Sinn bleibt mir verschlossen :wink:
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 05.09.03 13:00 
@Cromos: was verstehst du denn nicht?

Da steht, du sollst UpdateSFXStub einmal kompilieren, dir dann die genaue größe der Exe anschauen und den wert im Quellcode in die Konstante SFXLength eintragen. Dann kompilierst du noch einmal und die dann entstehende exe kannst du immer wieder verwenden.
Die Exe fügst du mit dem Befehl von Mathias mit deinem Update file zusammen und gut ist...

Das ist ganz normales English... :roll:

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Fr 05.09.03 16:02 
Man kann die Datei nicht kompilieren, da man einen Fehler bekommt.


Zuletzt bearbeitet von cromos am Fr 05.09.03 19:15, insgesamt 1-mal bearbeitet
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 05.09.03 16:11 
Der einzige Fehler, den ich bekomme, betrifft das Fehlen der RES-Datei. Öffne ich das Programm mit Delphi, wird aber eine solche Datei automatisch angelegt. Dann ließ es sich mit ein paar Warnungen kompilieren. Andere Fehler (in dem Sinn des Wortes) habe ich nicht gesehen.
cromos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 219


Delphi 7
BeitragVerfasst: Fr 05.09.03 19:13 
Dieser Fehler:

[Fehler] aCRC32.pas(195): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden

bezieht sich auf:
ausblenden Delphi-Quelltext
1:
CRC:=not LongInt(CRC32Calc(byte(TestString[1]),$ffffffff,Length(TestString)));