Autor |
Beitrag |
WebUpdateSystem
Hält's aus hier
Beiträge: 10
|
Verfasst: So 16.08.09 12:01
Die FC (Feature Complete) Versionen sind lauffähig, jedoch noch nicht fehlerbereinigt oder optimiert. Diese dienen zum Test und zur Weiterentwickling des Systems. Die FC Versionen liegen als .EXE, .DLL oder als Komponentenversion für D2009 und D2010 vor. Sie verfügen über die Möglichkeit Archive zu erstellen (Composer), diese zu laden, zu validieren, zu prüfen ob eine neuere Version vorliegt und diese zu Installieren und ggf. ein weiteres Programm im Anschluss (z. B. Installer oder die Applikation) aufzurufen.
Für die Weiterentwicklung sind gerne Mitarbeiter gesucht, welche Codebeiträge liefern, Fehler korrigieren, die Portierung nach D2007, D2006, D7, D6 vornehmen und C/C++ Header für die .DLL bereitstellen. Anregungen und Wünsche sind jederzeit Willkommen.
Das WUS (WebUpdate System) soll es auf einfache Art und Weise ermöglichen, die eigene Anwendung auf dem laufenden zu halten. Dazu kann das WUS Lizenzkostenfrei und ohne Nennung in eigene Anwendungen integriert werden. Wir schliessen jedoch die Gewährleistung und Haftung aus und erwarten, daß; Weiterentwicklungen, Fehlerkorrekturen, etc. wieder in das Projekt zurückfließen, damit das WUS insgesamt verbessert wird und jeder etwas davon hat, welcher das WUS einsetzt.
http://web-update-system.googlecode.com/files/WUS20091115%20Complete.zip (ca. 3 MB)
Die aktuelle Version ist noch recht Q&D, aber Dank Eurer Hilfe und Kritik werden wir das WUS schon zu der Ultimativen WebUpdate Komponente weiterentwickeln.
Version 20091115
[*] DLL Demo an D2006 angepasst
[*] Die DLL Funktionen beginnen nun mit einem Underscore "_"
[+] Demo ergänzt um Abfrage ob WUS DLL vorhanden ist
[*] DLL auf dynamsiche Linkung Funktionsaufruf umgestellt. DLL muss nun nicht mehr zwingend vorhanden sein
[+] Im Composer wird nun die URL des Archives geprüft
[*] Layout des Composers nun auf Tabstrips umgestellt
[+] Mussfelder im Composer nun farbig unterlegt
Aktualisierung 6.9.2009
[+] Manifest der .exe und .dll hinzugefügt
[*] ActionDownloadFile gegen URLDownloadToFile getauscht
[+] Bei fehlerhaften Update, werden die Änderungen wieder zurückgenommen
[*] Warnungen, neues Threadhandling (D2010) beseitigt
[*] Hilfe erweitert
[+] Demo zum WebUpdate und Installation erstellt
[+] Bei der Installation werden nun auch nichtvorhandene Verzeichnisse angelegt
[+] Im Composer "Speichern Unter" Dialog implementiert
[+] Berechtigungsprüfung in .DLL Interface integriert
Aktualisierung 4.9.2009
[*] Neue Basisklasse für das WUS eingeführt
[+] Die Archive werden nun nach dem herunterladen, direkt entpackt
[*] Binärformat der Archivdatei
[+] Überprüfung der Archivintegrität integriert
[+] Entschlüsselung der Archive beim Download hinzugefügt
[+] Einfache Prüfung der Versionshistorie implementiert
[*] Der Executor wurde überarbeitet, es werden neu die ReturnCodes zurückgeliefert
[*] Hilfe erweitert um die Updateszenarien
[*] Dekomprimierung der Streams auch unter D2006 ermöglicht
[*] Schalter für automatischen Download aus Updatemgr, wieder entfernt
[+] Implementation des externen Updates als .EXE, inkl. Dokumentation
[+] Das WUS läuft jetzt auch unter D2010
[*] Verschiedene Optimierungen an der internen Struktur des Updaters
[*] Fehler im Composer (Fortschreiben und Anzeige des Dateinamens im Archiv) beseitigt
[+] Im Installer den Executor (zur Ausführung von Dateien) implementiert
[+] .DLL Schnittstelle für das WUS implementiert
Aktualisierung 26.8.2009
[+] Der Executor wurde implementiert, aktuell noch ohne Einbindung in den Installer
[+] Hashcode für die Dateien Implementiert
[+] Für das Archiv wird jetzt auch eine Prüfsumme gebildet
[*] Die Mengentypen TWUSUpdateModes und TWUSVersionsNumberGets gegen die einfachen Typen ersetzt.
[+] Die Releasenummer als Updatekriterium integriert
[*] Routinen welche die Unit Windows verlangen in eine eigene Unit verlagert
[*] Aktualisierte CSV Unit für Unicode eingebunden
[+] Loggingklassen implementiert
[+] Logging implementiert
[+] Wird jetzt ebenfalls die Updatelise komprimiert
[+] Dem Archiv wird der Zeitstempel der Updateliste hinzugefügt
[+] Prüfung auf Verfügbarkeit des Internets beim UpdateCheck und Download integriert
[*] Es werden nur definierte Dateinamen vergeben
[*] Weitere Anpassungen an D2006/TD vorgenommen (Elimation impliziter TypeCasts)
[*] Verschiedene Hinweise und Warunungen im Updater beseitigt
[*] Verschiedene Optimierungen an der internen Struktur des Updaters
Aktualisierung 19.8.2009
[+] Der Updater kann nun wieder unter D2006/TD kompiliert werden
[+] Die Versionsermittlung über das Erstellungsdatum wird nicht mehr automatisch unterstützt
[+] Statusanzeige für den Logger eingeführt
Aktualisierung 17.8.2009
[+] Die Archive werden nun Komprimiert abgespeichert
[+] Die Logginginformationen auf Ressourcestrings umgestellt
[+] Hilfe in den Composer integriert
[*] Dateistruktur angepasst (Versionsinformationen sind nun separat)
[*] Bei der Execute Option, können nun auch mehrere Startparameter hinterlegt werden, diese sind durch <RETURN> zu trennen.
Zuletzt bearbeitet von WebUpdateSystem am So 15.11.09 16:38, insgesamt 8-mal bearbeitet
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 16.08.09 13:11
Kann sein, dass ich das grad übersehen habe, aber deinem Updater fehlt es an mindestens 2 Dingen:
1. Verifizierung der Updatelisten und heruntergeladenen Updates
2. Möglichkeit der Integration in die eigene EXE
Außerdem ist das Teil in übelstem Spagetti-Code geschrieben. Das sieht grausam aus 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: So 16.08.09 13:37
BenBE hat folgendes geschrieben : | Kann sein, dass ich das grad übersehen habe, aber deinem Updater fehlt es an mindestens 2 Dingen:
1. Verifizierung der Updatelisten und heruntergeladenen Updates
2. Möglichkeit der Integration in die eigene EXE
Außerdem ist das Teil in übelstem Spagetti-Code geschrieben. Das sieht grausam aus  |
Hallo Ben,
danke Dir für deine Rückmeldung. Die Verifizierung ist auf der To-Do Liste, nur weiß aktuell niemand wie man es verifizieren kann. Wäre dies etwas für Dich, die Verifizierung in die Hand zu nehmen?
Die Integration in die eigene .EXE ist aktuell nur für Delphi Code angedacht, hierfür wäre die Unit WUSUpdater in die Uses Klausel aufzunehmen und die Klasse TWUSUpdateManager zu instanzieren. Alles geht
Spagetti-Code: Tja, ist noch eine Gamma Version, daran wird noch gearbeitet. Wenn Du Vorschläge hast, um bestimmte Punkte besser abzubilden, freuen wir uns über Codebeiträge
Schöne Grüße und noch einen schönen Sonntag
btw: mit der Integration in die eigene Exe, wirst Du wohl nicht den Teil gemeint haben, eine Updateliste zu erstellen, sondern das Update selbst durchzuführen
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 16.08.09 13:45
WebUpdateSystem hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Kann sein, dass ich das grad übersehen habe, aber deinem Updater fehlt es an mindestens 2 Dingen:
1. Verifizierung der Updatelisten und heruntergeladenen Updates
2. Möglichkeit der Integration in die eigene EXE
Außerdem ist das Teil in übelstem Spagetti-Code geschrieben. Das sieht grausam aus  |
Hallo Ben,
danke Dir für deine Rückmeldung. Die Verifizierung ist auf der To-Do Liste, nur weiß aktuell niemand wie man es verifizieren kann. |
Siehe hier im Forum ... Da gibt es (u.a. von mir) genug Dinge, die für einen Updater zu beachten sind ... Auch in Bezug auf die Validierung.
WebUpdateSystem hat folgendes geschrieben : | Wäre dies etwas für Dich, die Verifizierung in die Hand zu nehmen? |
Keine Zeit dafür ...
WebUpdateSystem hat folgendes geschrieben : | Spagetti-Code: Tja, ist noch eine Gamma Version, daran wird noch gearbeitet. Wenn Du Vorschläge hast, um bestimmte Punkte besser abzubilden, freuen wir uns über Codebeiträge  |
Nenn es Bananaware, und ich geh mit No offense ...
Insbesondere die ziemlich verqueren Sprünge im Source umher und zwischen den Klassen sind doch extrem unübersichlich. Eine Statemaschine würde das ganze wesentlich besser abbilden, als dieser Code, den man ohne große Änderungen fast mit Fibers* umsetzen könnte.
WebUpdateSystem hat folgendes geschrieben : | Schöne Grüße und noch einen schönen Sonntag
btw: mit der Integration in die eigene Exe, wirst Du wohl nicht den Teil gemeint haben, eine Updateliste zu erstellen, sondern das Update selbst durchzuführen |
Jap, ich meinte das so, wie ich geschrieben hab: Integration der Update-Logik in die eigene EXE, damit das nicht extern rumliegen muss.
*API-Erweiterung für Lightweight-Threads; einer der zahlreichen Fehlgriffe von M$ ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: So 16.08.09 19:49
Hallo Ben,
bei der (einfachen) Verifizierung fehlt mir mind. ein MD5 oder SHA1 Algo, welchen ich mit einbinden könnte. Kennst Du hier vielleicht eine Routine, welche man ohne zusätzliche Datei (.EXE/.DLL) und ohne weitere Voraussetzungen mit einbinden könnte? Bei Indy bekomme ich es z. B. unter D2009 nicht mehr zum laufen  . Aber dies wäre nur der rudimentäreste Ansatz von Verifizierung. Dieser kann nur überprüfen, ob das Archiv auch richtig (ohne Verfälschung) heruntergeladen wurde, nicht jedoch ob sie auch vom Entwickler stammt. Aber für das letztgenannte Problem sehe ich auch keine Lösung...
BenBE hat folgendes geschrieben : | WebUpdateSystem hat folgendes geschrieben : | Wäre dies etwas für Dich, die Verifizierung in die Hand zu nehmen? |
Keine Zeit dafür ... |
BenBE hat folgendes geschrieben : | WebUpdateSystem hat folgendes geschrieben : | Spagetti-Code: Tja, ist noch eine Gamma Version, daran wird noch gearbeitet. Wenn Du Vorschläge hast, um bestimmte Punkte besser abzubilden, freuen wir uns über Codebeiträge  |
Nenn es Bananaware, und ich geh mit No offense ... |
Was erwartet Du denn von eine Gamma? Daß sie schon so ordentlich ist, wie ein Code, welcher Produktiv eingesetzt werden kann? Ausserdem kann man mit einem WebUpdate auch keine Punkte holen, dies ist ein Mittel zum Zweck, welcher vom Anwender zur Kenntnis genommen wird, und das war es dann auch. Also Lorbeeren kann man sich nicht damit hohlen. Mir ist aber daran gelegen, daß es reibungslos funktioniert, daher habe ich es auch als OS aufgesetzt, damit ich nicht der einzige bin, der daran entwickelt und die Fehler sucht und behebt. Also, wie wäre es, einmal mitzuarbeiten und dann darauf zu verweisen, als ständig immer die gleichen Fragen zu beantworten?
BenBE hat folgendes geschrieben : | WebUpdateSystem hat folgendes geschrieben : | Schöne Grüße und noch einen schönen Sonntag
btw: mit der Integration in die eigene Exe, wirst Du wohl nicht den Teil gemeint haben, eine Updateliste zu erstellen, sondern das Update selbst durchzuführen |
Jap, ich meinte das so, wie ich geschrieben hab: Integration der Update-Logik in die eigene EXE, damit das nicht extern rumliegen muss. |
Welche Funktionalitäten fehlen Dir denn um ein Update zu steuern? Also ich gehe davon aus, daß die nötigen Definitionen nicht in der bereits verteilten Applikation vorgenommen werden, sondern vom Entwickler, welche die neue Applikation definiert und für die Verteilung vorbereitet.
Ein Update, sollte IMHO so leise wie möglich erfolgen, ohne daß der User sich zusehr an den Details stößt. Also Silent. Wenn Du anderer Meinung bist, kannst Du gerne entsprechende Codebeiträge liefern, welche auch das andere Verhalten ermöglichen. Ich bin dafür offen. Ausserdem möchte ich mit diesem OS die ganze Problematik erschlagen, daß man keinen vernünftigen Updater findet, ausser zu einem Total überhöhten Preis.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 16.08.09 20:01
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 16.08.09 22:03
WebUpdateSystem hat folgendes geschrieben : | Hallo Ben,
bei der (einfachen) Verifizierung fehlt mir mind. ein MD5 oder SHA1 Algo, welchen ich mit einbinden könnte. Kennst Du hier vielleicht eine Routine, welche man ohne zusätzliche Datei (.EXE/.DLL) und ohne weitere Voraussetzungen mit einbinden könnte? Bei Indy bekomme ich es z. B. unter D2009 nicht mehr zum laufen . Aber dies wäre nur der rudimentäreste Ansatz von Verifizierung. Dieser kann nur überprüfen, ob das Archiv auch richtig (ohne Verfälschung) heruntergeladen wurde, nicht jedoch ob sie auch vom Entwickler stammt. Aber für das letztgenannte Problem sehe ich auch keine Lösung... |
Bzgl. Hashes: Siehe DEC von negaH (DP).
Für Verifizierung der Authentizität siehe Public Key Cryptography. Da bietet sich mindestens RSA, DH/DSS oder ECC an. Stichwort CodeSigning, PKCS#7 und PKCS#11 dürften hier schon mal gute Ansätze liefern; alternativ geht auch RFC 4880 ...
WebUpdateSystem hat folgendes geschrieben : | Was erwartet Du denn von eine Gamma? |
Das hat jaenicke eigentlich recht gut getroffen.
WebUpdateSystem hat folgendes geschrieben : | Daß sie schon so ordentlich ist, wie ein Code, welcher Produktiv eingesetzt werden kann? |
Ich bin Betatester beim FF, d.h. spätestens, wenn eine neue FF-Version als Beta vorliegt, bin ich am aktiven Testen. Und was muss man da sagen: Die Beta's vom FF sind von der Funktionalität vollständiger und oft schon richtig stabil ...
WebUpdateSystem hat folgendes geschrieben : | Ausserdem kann man mit einem WebUpdate auch keine Punkte holen, dies ist ein Mittel zum Zweck, welcher vom Anwender zur Kenntnis genommen wird, und das war es dann auch. Also Lorbeeren kann man sich nicht damit hohlen. |
hmmm, Ein Online-Update stellt einen sicherheitskritischen Aspekt einer Anwendung und somit eine potentielle Bedrohung für das System, auf dem es läuft, dar. Wenn Du mit einem Online-Update schon keine "Lorbeeren" beim Anwender holen kannst, dann aber zumindest beim Netzwerk-Admin und der Security-Abteilung, die ihren Kopf dafür hinhalten müssen, dass dieser Updater nicht zum Einschleusen von Schadcode missbraucht werden kann.
Wenn ich jetzt hier nur ma so am Rande MITM's auf SSL, DNS Exploits zum Faken von DNS-Responses (Dan Kaminsky anyone  ), ... erwähne, dürfte ich nicht übertreiben, wie vorsichtig man bei der Implementierung solcher "Dienste" sein sollte.
WebUpdateSystem hat folgendes geschrieben : | Mir ist aber daran gelegen, daß es reibungslos funktioniert, daher habe ich es auch als OS aufgesetzt, damit ich nicht der einzige bin, der daran entwickelt und die Fehler sucht und behebt. |
OpenSource macht schlechten Code nicht besser ...
WebUpdateSystem hat folgendes geschrieben : | Also, wie wäre es, einmal mitzuarbeiten und dann darauf zu verweisen, als ständig immer die gleichen Fragen zu beantworten? |
Was war an dem "Ich habe keine Zeit" nicht zu verstehen? 2K€ netto/Monat und wir können aber gerne reden ...
WebUpdateSystem hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | WebUpdateSystem hat folgendes geschrieben : | Schöne Grüße und noch einen schönen Sonntag
btw: mit der Integration in die eigene Exe, wirst Du wohl nicht den Teil gemeint haben, eine Updateliste zu erstellen, sondern das Update selbst durchzuführen |
Jap, ich meinte das so, wie ich geschrieben hab: Integration der Update-Logik in die eigene EXE, damit das nicht extern rumliegen muss. |
Welche Funktionalitäten fehlen Dir denn um ein Update zu steuern? Also ich gehe davon aus, daß die nötigen Definitionen nicht in der bereits verteilten Applikation vorgenommen werden, sondern vom Entwickler, welche die neue Applikation definiert und für die Verteilung vorbereitet. |
Callbacks, um Teilupdates kontrollieren zu können (partielles Zurückhalten), Mehrteilige Updates \mehrere Einzelkomponenten, Zusätzliche Updateeinträge für z.B. Plugins, Steuerung der Verifikation \ Event-Callbacks für Success und Failure (ggf. mit Override), ... Inwiefern die bereits umgesetzt sind, hab ich aber grad nicht im Überblick.
Ferner Konfiguration des Updates über eine Steuer-Datei, um z.B. Update-Quelle anzugeben, Trusted Keys zu hinterlegen, zu aktualisierende Komponenten zu konfigurieren, ...
WebUpdateSystem hat folgendes geschrieben : | Ein Update, sollte IMHO so leise wie möglich erfolgen, ohne daß der User sich zusehr an den Details stößt. Also Silent. |
Es darf aber auch nicht zu leise sein, da der User im Zweifelsfall IMMER das letzte Wort haben können muss. Siehe hier ggf. den Firefox: Information über Updates und der Installationszeitpunkt wird vom User gewählt.
WebUpdateSystem hat folgendes geschrieben : | Wenn Du anderer Meinung bist, kannst Du gerne entsprechende Codebeiträge liefern, welche auch das andere Verhalten ermöglichen. Ich bin dafür offen. Ausserdem möchte ich mit diesem OS die ganze Problematik erschlagen, daß man keinen vernünftigen Updater findet, ausser zu einem Total überhöhten Preis. |
Jap, vernünftige für wenig Geld gibt es nicht. q.e.d.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: Mo 17.08.09 21:26
Tja, ich bin halt kein M$ Mitarbeiter, von daher ist die Gamma auch kein RC, sondern eine Vorversion einer Beta.
Hast Du dir mal die Lizenz vom DEC angesehen? Diese ist, IMHO nicht für kommerzielle Projekte einsetzbar, von daher kommt Sie nicht in Frage.
Die meisten Features, welche Du aufgeführt hast, sind bereits hier in der Gamma implementiert. Wenn etwas darüber hinaus möglich sein soll, ist derjenige der es braucht, gerne aufgerufen es zu implementieren und mit zu veröffentlichen. Das ganze soll ja kein typisches TEAM Projekt werden (Toll, Ein Anderer Machts), sondern es sollen wirklich Leute mitarbeiten, damit wir gemeinsam etwas gutes kreieren was uns allen die Arbeit erleichtert.
Denke, 1/2 Dutzend Infomöglichkeiten/Eingreifmöglichkeiten für den User sollte doch genügen, er soll ja nicht jedes einzelne Byte bestätigen, sondern Beginn, Entscheidung ob heruntergeladen werden soll, ob geupdated werden soll, und was zu tun ist, falls Fehler auftreten.
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: Mo 17.08.09 23:48
Das Update III des WUS ist nun Verfügbar. Die folgenden Neuerungen wurden implementiert. Der Downloadlink wurde im 1. Post aktualisiert. Hilfreiche Hände, welche gerne mitentwicklen möchten um das Projekt zum Erfolg zu führen, sind gerne gesehen und können sich jederzeit melden.
Aktualisierung 17.8.2009
[+] Die Archive werden nun Komprimiert abgespeichert
[+] Die Logginginformationen auf Ressourcestrings umgestellt
[+] Hilfe in den Composer integriert
[*] Dateistruktur angepasst (Versionsinformationen sind nun separat)
[*] Bei der Execute Option, können nun auch mehrere Startparameter hinterlegt werden, diese sind durch <RETURN> zu trennen.
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: Mi 19.08.09 22:24
Hallo Zusammen,
anbei die aktualisierte Version 20090819 des WUS. Folgendes hat sich geändert:
[+] Der Updater kann nun wieder unter D2006/TD kompiliert werden
[+] Die Versionsermittlung über das Erstellungsdatum wird nicht mehr automatisch unterstützt
[+] Statusanzeige für den Logger eingeführt
Das kompilieren, heißt kompilieren. Es wurde nicht darauf getestet, daß die Widestrings und Ansistrings auch zwischen den Umgebungen funktionieren. Vielleicht könnte dies jemand machen und für etwas D2006/TD kompatibilität sorgen. Der Composer (als .EXE) ist übrigens unter D2009 kompiliert und damit voll Unicodefähig.
Könnte jemand den untenstehenden Code bitte prüfen und verbessern? Er soll aus dem Applikationsdirektory und dem Pfad der neuen Datei den Zielordner ermitteln und zur Verfügung stellen. Beispiel:
AppDir = 'c:\programme\mycompany\mysoftware'
NewFile = 'bin\myNew.Exe'
soll zu
'c:\programme\mycompany\mysoftware\bin\myNew.Exe'
werden. Die Ermittlung des Updatepfads ist ja eine grundlegende Funktion, bitte mal zu prüfen und, falls Fehler, zu berichten und zu verbessern (und hier in diesen Thread posten) danke.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| function CombineDirectory(aDirectory, aRelativePath: String): String; var LD: integer; begin result := ''; while copy(aRelativePath, 1, 3) = '..\' do begin aDirectory := ExcludeTrailingPathDelimiter(aDirectory); ld := LastDelimiter('\', aDirectory); Delete(aDirectory, ld+1, length(aDirectory) - ld); aRelativePath := copy(aRelativePath, 4, length(aRelativePath) - 3); end;
aDirectory := ExcludeTrailingPathDelimiter(aDirectory); if copy(aRelativePath, 1, 2) = '.\' then result := aDirectory + '\' + copy(aRelativePath, 3, length(aRelativePath) - 2) else if not (aRelativePath[1] in ['\', '.']) then result := IncludeTrailingPathDelimiter(aDirectory) + aRelativePath else if aRelativePath[1] = '\' then result := aDirectory + aRelativePath; end; |
Der Updatelink, wurde im 1. Post angepaßt.
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: Mi 26.08.09 23:25
Die aktuelle Gamma V bietet einiges an Verbesserungen, wenn auch noch einiges fehlt. Viel wurde im Bereich des Updates gemacht, vorallem einiges an Codeverbesserungen von den Hauptklassen. Der Installer, als Klasse fehlt noch, ebenso wie die .EXE und .DLL Version. Implementiert wurde bspw. die Komprimierung der Dateien und die Hinterlegung eines passenden Hashcodes. Der Timestamp wird zur Verifizierung ebenso in die Archive mit integriert. Der Downloadlink befindet sich im ersten Post.
Aktualisierung 26.8.2009
[+] Der Executor wurde implementiert, aktuell noch ohne Einbindung in den Installer
[+] Hashcode für die Dateien Implementiert
[+] Für das Archiv wird jetzt auch eine Prüfsumme gebildet
[*] Die Mengentypen TWUSUpdateModes und TWUSVersionsNumberGets gegen die einfachen Typen ersetzt.
[+] Die Releasenummer als Updatekriterium integriert
[*] Routinen welche die Unit Windows verlangen in eine eigene Unit verlagert
[*] Aktualisierte CSV Unit für Unicode eingebunden
[+] Loggingklassen implementiert
[+] Logging implementiert
[+] Wird jetzt ebenfalls die Updatelise komprimiert
[+] Dem Archiv wird der Zeitstempel der Updateliste hinzugefügt
[+] Prüfung auf Verfügbarkeit des Internets beim UpdateCheck und Download integriert
[*] Es werden nur definierte Dateinamen vergeben
[*] Weitere Anpassungen an D2006/TD vorgenommen (Elimation impliziter TypeCasts)
[*] Verschiedene Hinweise und Warunungen im Updater beseitigt
[*] Verschiedene Optimierungen an der internen Struktur des Updaters
Nach wie vor, werden noch Freiwillige gesucht, welche gerne mitarbeiten, optimieren und testen möchten. Damit das WUS einfach in eigene Anwendungen integriert werden kann und es stabil und zuverlässig läuft.
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 04.09.09 20:03
Die FC (Feature Complete) Versionen sind lauffähig, jedoch noch nicht fehlerbereinigt oder optimiert. Diese dienen zum Test und zur Weiterentwickling des Systems. Die FC Versionen liegen als .EXE, .DLL oder als Komponentenversion für D2009 und D2010 vor. Sie verfügen über die Möglichkeit Archive zu erstellen (Composer), diese zu laden, zu validieren, zu prüfen ob eine neuere Version vorliegt und diese zu Installieren und ggf. ein weiteres Programm im Anschluss (z. B. Installer oder die Applikation) aufzurufen.
Für die Weiterentwicklung sind gerne Mitarbeiter gesucht, welche Codebeiträge liefern, Fehler korrigieren, die Portierung nach D2007, D2006, D7, D6 vornehmen und C/C++ Header für die .DLL bereitstellen. Anregungen und Wünsche sind jederzeit Willkommen.
Der Downloadlink ist im 1. Post.
Aktualisierung 4.9.2009
[*] Neue Basisklasse für das WUS eingeführt
[+] Die Archive werden nun nach dem herunterladen, direkt entpackt
[*] Binärformat der Archivdatei
[+] Überprüfung der Archivintegrität integriert
[+] Entschlüsselung der Archive beim Download hinzugefügt
[+] Einfache Prüfung der Versionshistorie implementiert
[*] Der Executor wurde überarbeitet, es werden neu die ReturnCodes zurückgeliefert
[*] Hilfe erweitert um die Updateszenarien
[*] Dekomprimierung der Streams auch unter D2006 ermöglicht
[*] Schalter für automatischen Download aus Updatemgr, wieder entfernt
[+] Implementation des externen Updates als .EXE, inkl. Dokumentation
[+] Das WUS läuft jetzt auch unter D2010
[*] Verschiedene Optimierungen an der internen Struktur des Updaters
[*] Fehler im Composer (Fortschreiben und Anzeige des Dateinamens im Archiv) beseitigt
[+] Im Installer den Executor (zur Ausführung von Dateien) implementiert
[+] .DLL Schnittstelle für das WUS implementiert
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: So 06.09.09 09:44
Die FC II (Feature Complete) Versionen sind lauffähig, jedoch noch nicht fehlerbereinigt oder optimiert. Diese dienen zum Test und zur Weiterentwickling des Systems. Die FC Versionen liegen als .EXE, .DLL oder als Komponentenversion für D2009 und D2010 vor. Sie verfügen über die Möglichkeit Archive zu erstellen (Composer), diese zu laden, zu validieren, zu prüfen ob eine neuere Version vorliegt und diese zu Installieren und ggf. ein weiteres Programm im Anschluss (z. B. Installer oder die Applikation) aufzurufen.
Für die Weiterentwicklung sind gerne Mitarbeiter gesucht, welche Codebeiträge liefern, Fehler korrigieren, die Portierung nach D2007, D2006, D7, D6 vornehmen und C/C++ Header für die .DLL bereitstellen. Anregungen und Wünsche sind jederzeit Willkommen.
Der Downloadlink ist im 1. Post.
Aktualisierung 6.9.2009
[+] Manifest der .exe und .dll hinzugefügt
[*] ActionDownloadFile gegen URLDownloadToFile getauscht
[+] Bei fehlerhaften Update, werden die Änderungen wieder zurückgenommen
[*] Warnungen, neues Threadhandling (D2010) beseitigt
[*] Hilfe erweitert
[+] Demo zum WebUpdate und Installation erstellt
[+] Bei der Installation werden nun auch nichtvorhandene Verzeichnisse angelegt
[+] Im Composer "Speichern Unter" Dialog implementiert
[+] Berechtigungsprüfung in .DLL Interface integriert
|
|
WebUpdateSystem 
Hält's aus hier
Beiträge: 10
|
Verfasst: So 15.11.09 16:38
Die FC III (Feature Complete) Versionen sind lauffähig, jedoch noch nicht fehlerbereinigt oder optimiert. Diese dienen zum Test und zur Weiterentwickling des Systems. Die FC Versionen liegen als .EXE, .DLL oder als Komponentenversion für D2009 und D2010 vor. Sie verfügen über die Möglichkeit Archive zu erstellen (Composer), diese zu laden, zu validieren, zu prüfen ob eine neuere Version vorliegt und diese zu Installieren und ggf. ein weiteres Programm im Anschluss (z. B. Installer oder die Applikation) aufzurufen.
Für die Weiterentwicklung sind gerne Mitarbeiter gesucht, welche Codebeiträge liefern, Fehler korrigieren, die Portierung nach D2007, D2006, D7, D6 vornehmen und C/C++ Header für die .DLL bereitstellen. Anregungen und Wünsche sind jederzeit Willkommen.
Der Downloadlink ist im 1. Post.
Version 20091115
[*] DLL Demo an D2006 angepasst
[*] Die DLL Funktionen beginnen nun mit einem Underscore "_"
[+] Demo ergänzt um Abfrage ob WUS DLL vorhanden ist
[*] DLL auf dynamsiche Linkung Funktionsaufruf umgestellt. DLL muss nun nicht mehr zwingend vorhanden sein
[+] Im Composer wird nun die URL des Archives geprüft
[*] Layout des Composers nun auf Tabstrips umgestellt
[+] Mussfelder im Composer nun farbig unterlegt
|
|
|