Laden...

AppDater (ehemals K_Updater)

Erstellt von EvilMM vor 16 Jahren Letzter Beitrag vor 14 Jahren 225.119 Views
Thema geschlossen
E
200 Beiträge seit 2006
vor 15 Jahren

Hallo EvilMM,

mir ist gerade noch ein Problem aufgefallen. Folgende Situation: Frisch installiertes K_Updater auf einem Windows XP PC mit SP 2 sowie aktuellen (ohne SP3) Patches. Dazu ein Visual Studio Express. Ohne einen Neustart habe ich ein neues Projekt angelegt. Das anlegen sowie alles andere ging einwandfrei. Nur beim Öffnen hing dann die Administrationsoberfläche in einer Endlosschleife. Weder meine Firewall noch meine Benutzerrechte haben ein Problem gemacht, das habe ich beides schon überprüft.

Langsam gehen mir die Ideen aus. Weiter unten der Screenshot des Verhaltens.

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 15 Jahren

Hallo,
das Problem kenne ich und sollte dann in der nächsten Version auch raus sein. Verwunderlich, dass er bei dir immer in eine Endlosschleife läuft - normal klappt es beim zweiten oder dritten Versuch dann.

Leider muss ich dich dann einfach auf die nächste Version vertrösten.

E
200 Beiträge seit 2006
vor 15 Jahren

Hallo EvilMM,

das macht nichts, hauptsache der Bug wird gefixt. Interessant wäre, wann du den Release des Updates deines Updaters (O_o) auf 1.4 geplant hast. Der Grund ist der, das ich dann eventuell meine Releases leicht verschieben möchte, um noch den aktuellen Updater einzubauen.

mfg

Easy

P.S.: Werd dir ab jetzt im Bugtracker alles melden 😉

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 15 Jahren

Ich hab mir den Januar ganz fest vorgenommen.
Habe ab dem 15. bis zum 7. Urlaub und in der Zeit will ich da viel dran weiter schaffen. Hoffentlich schaffe ich es g

S
24 Beiträge seit 2007
vor 15 Jahren

Hi,

ich hätte noch den Wunsch nach einem kleinen aber feinen Feature für die nächste Version 😉

Meine User dürfen entscheiden ob sie ein Update sofort installieren wollen oder erst später. Ab und zu wäre es aber ganz gut wenn ich ein Update zwingend installieren könnte. Zum Beispiel bei gravierenden Bugs.

Wäre es möglich einen weiteren Parameter "InstallAllways" oder "InstallPrio" einzubauen? Dann könnte ich den abfragen und wenn der gesetzt ist das Update starten ohne den Benutzer zu fragen.

Das wäre echt super 😉

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 15 Jahren

Hi,
Der Wunsch wurde tatsächlich schon öfter geäußert.
Ich werde ihn deshalb höher priorisieren.
In der von dir beschriebenen Vorgehensweise, dass zur Erzeugung eines Upadtepaketes einfach ein Flag gesetzt wird der später im Programm abgefragt werden kann ist das auch nicht sonderlich aufwendig und somit wirds die Funktion dann ziemlich sicher in die nächste Version schaffen.

268 Beiträge seit 2008
vor 15 Jahren

Hallo ich hab ein Problem ,
ich bekomm immer bei .doUpdate() :

Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement progressBar_Download erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.

Hab das Updaten schon in einen eigenen Thread gepackt , das brachte es aber leider auchnet ...

EDIT: Hab das problem in der Demoanwendung (von deiner HP) sowie in meinem eigenen Programm. Hab es mit Testpaket sowie normalem Probiert ,geht beides net .. ich bin verzweifelt ich hab morgen projektabgabe und wollte dieses "leckerbissen" gerne noch drin haben ...schade...

EDIT2: Okay es lag an der KUpdater.dll ... hab ne ältere Version benutzt und Tada es tat , naja scheint wohl ein problem mit dem Ladebalken zu sein 😦

Name: Scarecraft
Language:C#
learning since:winter 2007
IDE: Visual Studio 2005/08 Professional Editon
Skill:Medium
qualifications: MCP - Microsoft Certified Professional
Homepage : FX RPG Maker

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 15 Jahren

Das Problem ist in der nächsten Version auch gefixt.

S
322 Beiträge seit 2007
vor 15 Jahren

Hallo EvilMM,

vorab, gutes Neues 2009 😉

Danke für die tolle Arbeit, hört sich vielversprechend an, darum möchte ich es bei mir auch einsetzen.

Wann kann man den mit einem Release der neuen Version rechnen?

Danke
Steffen

C
13 Beiträge seit 2006
vor 15 Jahren
Statistik

Hallo,

zunächst einmal finde ich das K-Update-Projekt eine Super Sache. Finde es gut, dass sich jemand hier richtig viel mühe gibt und so etwas aus freien Stücken zu Verfügung stellt. Ich selbst habe es erst vorgestern heruntergeladen und bin noch am testen.

Es funktioniert auch soweit einwandfrei, bis auf ein kleines Problem zu dem ich in diesem Thread einfach keine Antowrt finde. Vielleicht weiß ja jemand die Lösung, da ich die Lösung einfach nicht herausgefunden habe.

Und zwar geht es darum, dass mir die Statistik einfach nichts anzeigt, obwohl laut logdateien schon mehrere Updates (während meiner Tests) gezogen wurden. Ich bekomme zwar eine Grafik angezeigt, aber ohne Werte.
Die Log-Dateien sind aber da und enthalten auch einträge. Habe mir auch schon einen Einblick in die PHP-Dateien verschaft. Finde aber hier auch erst mal keine Fehler.

Bin für jeden Tipp dankbar.

MfG
Mathias

Ps.: Nochmals ein Lob an den Entwickler.

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 15 Jahren

Das ist schwer zu sagen.
Abermals kann ich derzeit auch nur wieder auf die nächste Version vertrösten da sich auch an dieser Stelle so einiges geändert hat.

Ich bin nach wie vor an der Entwicklung dran, komme aber derzeit aufgrund andere Projekt und meiner Abschlusspräsentation der IHK (2. Februar) nur wieder schleppend voran.

C
89 Beiträge seit 2005
vor 15 Jahren
NullReferenceException bei sUpdate.Check()

Hej EvilMM,

erstmal vielen Dank für dieses klasse Tool. Das administrieren funktioniert sehr schön und wird mir in Zukunft einiges an Arbeit ersparen. Jedoch habe ich ein Problem beim integrieren der Komponente in mein Projekt. Und zwar wird beim Aufrufen der Funktion sUpdate.Check() eine NullReferenceException geworfen. Dabei ist sUpdate allerdings instanziiert (mittels Debugger kann ich auch durch die Member 'browsen').

So verwende ich den Updater:


K_Updater.Settings kSettings = new K_Updater.Settings();
kSettings.AuthenticateMode = K_Updater.SelfUpdate.authentication.none;
kSettings.CurrentAppVersion = "1.0.0";
kSettings.Language = K_Updater.SelfUpdate.language.german;
kSettings.UpdatePath = "http://meinedomain.de/update";

K_Updater.SelfUpdate sUpdate = new K_Updater.SelfUpdate(kSettings);

K_Updater.UpdateCheckResult result = sUpdate.Check();

if (result.Code == 1) sUpdate.DoUpdate();

Mache ich hierbei etwas falsch? Wobei es ja an sich echt easy sein sollte einzubinden. Ich hab die aktuelle Version heruntergeladen. Das Programm selbst hat die Version 1.3.2 und die .dll die Version 1.2.0.

Ich hoffe Du oder jemand anderes können mir hierbei helfen.

Gruß,
Calex

E
200 Beiträge seit 2006
vor 15 Jahren

Du musst die drei Proxy-Variablen setzen, auch wenn du sie nicht benötigst. Ein leerer String ("") reicht vollkommen aus. Ich hatte den gleichen Fehler und hab ihn so gelöst.

C
89 Beiträge seit 2005
vor 15 Jahren

Vielen Danke, das werde ich gleich mal ausprobieren...

Edith: Und funktioniert... Jetzt bekomme ich nur ne InvalidOperationException (auf progressBar_download wir wohl Thread übergreifend zugegriffen), aber das hatte ich hier schonmal irgendwo gesehen... Danke Dir nochmal.

M
25 Beiträge seit 2008
vor 15 Jahren

Zunächst einmal großes Lob, geile Komponente!

Habe leider einen Bug gefunden:
Die Auswertung der Statistiken geht nur bis 2008. 09 ist nicht in der Dropdownlist enthalten.

Meine Projekte:
ClipboardReader
MusicMasher (auf Eis gelegt)
PAMTracker 4.02

S
24 Beiträge seit 2007
vor 15 Jahren

Ist hier noch jemand zu Hause oder träumst nur noch vom Fiesta? 😃

Der Dezember ist schon länger vorbei und eigentlich wolltest ja ein wenig weiter machen. Ich werde auch demnächst meine neue Version so weit haben das ich sie ausrollen könnte. Von daher die Frage ob es sich lohnt auf Dich damit zu warten?

Sprich, bis wann denkst Du die neue Version fertig zu haben?

U
195 Beiträge seit 2006
vor 14 Jahren

Hey,

schlagt mich jetzt nicht, wenn die Frage schon mal gestellt wurde, aber habe auf dem ersten Blick nichts gefunden.

Lässt sich der K Updater auch in andere Programmiersprachen einbinden? Über externe DLL vielleicht? Sprache ist XBase. Wäre nämlich eine coole Sache in unserer Software.

Bin auf der Suche nach einem guten Online Update, dass sich schnell (!! wichtig) einbauen lässt.

Gruß underscare

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

@Sun: sorry dass derzeit n bissl Mau is - aber ich gelobe Besserung 😃
@Underscare: du kannst den Updater in alle .Net-Sprachen einbinden. Wenn XBase eine .Net-Sprache wäre dann würde es gehen.

S
24 Beiträge seit 2007
vor 14 Jahren

Kein Thema. Ich kenn das von meinem Prog. Gibt einfach Zeiten wo man nicht motoviert ist wirklich daran was zu machen oder einfach keine Zeit hat 😉

Schön wärs nur wenn Du ab und zu schreiben würdest ob Du was machst oder nicht. Geht wie gesagt nur darum ob es sich lohnt zu warten oder, mit der ja gut funktionierenden, derzeitigen Version raus zu gehen ^^

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Es lohnt sich. Ich werde in Zukunft wieder mehr im Blog drüber schreiben und auch über die Funktionen die bereits umgesetzt sind.

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

So, nun ist ja doch wieder etwas Zeit vergangen aber ich komme mit guten Nachrichten.

Ich hab endlich wieder Motivation gefunden und arbeite wieder seit Tagen Intensiv am Updater.

Der derzeitige Stand sieht so aus, dass ich gestern die neue DLL fertiggestellt habe und heute die neue updater.exe so gut wie fertig gemacht habe.

Dann fehlen nur noch ein paar Änderungen an der Admin-Oberfläche.

Hier könnt ihr euch wie gewohnt schon einmal einen Einblick verschaffen was sich bis jetzt alles geändert hat.

Um euch die restliche Wartezeit etwas angenehmer zu gestalten, habe ich euch einen kleinen Videomitschnitt gemacht. Zu sehen ist die Import-Funktion bestehender Projekte vom FTP und die neue Statistikauswertung.

Hier gehts zum Video

Ich hoffe ihr könnt mir meine monatelange Pause entschuldigen 😃

L
770 Beiträge seit 2006
vor 14 Jahren

Ich sags ja immer wieder.. Weihnachten ist nicht immer am 24.12 😃

lg Lion

420 Beiträge seit 2007
vor 14 Jahren

Das Video ist sehr vielversprechend aus! 😃 Bin mal gespannt...

S
24 Beiträge seit 2007
vor 14 Jahren

*freu*

Da sind anscheinend echt paar nette Sachen mit drin 😉

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Die Arbeiten gehen gut voran und ich habe gestern den Updater selbst (updater.exe) so gut wie fertig gemacht. Nun sitze ich noch an der Admin-Oberfläche.

Ich möchte ab der nächsten Version dann Beta-Versionen anbieten. Das heißt irgendwann nächste Woche möchte ich eine Beta der Version 1.4.0 herausbringen.

Das gibt mir die Möglichkeit euch erstmal testen zu lassen und Fehler früher zu finden. Um eure Beteiligung und vor allem dem Feedback (gerne auch über den Bugtracker) würde ich mich dann sehr freuen.

J
1.114 Beiträge seit 2007
vor 14 Jahren

Eine Bitte oder Frage hätte ich. Kann sein, dass das in der Vergangenheit schonmal erwähnt wurde, falls ja, machts ja auch nichts weiter das nochmals zu fragen.

Es geht mir um Startparameter einer Applikation, die nach einem Updatevorgang verloren gehen. Ich starte meine Anwendung mit einem Parameter /id=123 z.B. Beim Start prüfe ich mittels KUpdate auf eine neue Version. Falls vorhanden, wird der Updatevorgang gestartet und meine eigentliche Anwendung gestoppt. Nach dem Update besteht ja dann die Möglichkeit, in der Definition des Update Packages z.B. wieder automatisch meine Anwendung zu starten. Nur mit einem Problem: Mein vorher übergebene Parameter /id=123 ist verloren, d.h. ich kann meine Applikation nur noch normal oder mit fixen Parametern starten, und das führt bei uns zu einem Scenario das z.Z. den KUpdater leider unbrauchbar macht.

Zur Lösung wäre es hübsch, wenn man also in der Parametermaske (UpdatePaket->Starten->Parameter) irgendwie angeben könnte, dass die ursprènglichen Parameter auch mit übertragen werden können.

Meinst du, sowas sei auf die Schnelle realisierbar?

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Ist schon umgesetzt und kommt dann mit der 1.4er 😃

4.931 Beiträge seit 2008
vor 14 Jahren

Wie gut, daß ich das schon letztes Jahr gepostet hatte -) http://www.klausmoster.de/mantis/view.php?id=89

P.S: Ich würde mich gerne als Beta-Tester zur Verfügung stellen

J
1.114 Beiträge seit 2007
vor 14 Jahren

Ist schon umgesetzt und kommt dann mit der 1.4er 🙂

Bestens 👍

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

@Th69: Ist das schon so lange her? Wie die Zeit vergeht 😃

Ich habe gerade ein neues Feature umgesetzt. Es geht darum Applikation gezielt von Updates auszuschließen. Zum Beispiel möchte man ja eventuell die Seriennummer der Applikation überprüfen um dann das Update zu verweigern.

Das ganze wird so laufen:
Bei der Updateanfrage kann man einfache Zeichenfolgen anhängen. Diese werden per POST an eine Datei validate.php gesendet die Standardmäßig immer ihr OK gibt.
Diese Datei kann nun nach belieben verändert werden und die gesetzte Zeichenfolge (zum Beispiel die besagte Seriennummer) kann überprüft werden. Sollte aus welchen Gründen auch immer kein Update erlaubt sein, so kann zum durch Beispiel durch ein einfaches

[php]echo "Sie verwenden eine ungültige Seriennummer.";[/php]

das Update verhindert werden.

Das ganze wird für Version 1.4.0 erstmal in dieser einfachen Art umgesetzt. Da man sich in der validate.php - Datei jedoch frei austoben kann ist es meiner Meinung nach schon einmal sehr "offen". Falls euch da noch weitere Ideen einfallen nur raus damit. Ansonsten seht ihr es dann in der Beta.

S
24 Beiträge seit 2007
vor 14 Jahren

Das mit der "validate.php" ist eine gute Idee. Allerdings sehe ich ein Problem:

Was wenn auf dem Server PHP nicht läuft?

Nur leider fällt mir so spontan auch nichts plattformunabhängiges ein 😦

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Nun es ist zunächst wie du schon richtig schreibst - eine wirklich andere Möglichkeit gibt es nicht.
Der Updater braucht davon abgesehen für das Logging auch PHP. Daher empfinde ich diese Anforderung als nicht schlimm.

S
24 Beiträge seit 2007
vor 14 Jahren

Naja, das Logging ist mir ziemlich Jacke wie Hose. Der Updater funktioniert ja trotzdem. Was aber wenn die "validate.php" nicht ausgeführt werden kann und deshalb kein "ok" zurück liefert?

Sinnvoll wäre IMO folgende Vorgehensweise:

  1. Schauen ob die validate.php vorhanden ist
    2.a nicht vorhanden = ok
    2.b vorhanden = versuch sie aufzurufen
  2. Abfrage auf "Nicht OK". Alles andere müsste als "OK" interpretiert werden.

Wie gesagt wäre es für mich ein eindeutiger Showstopper wenn PHP zwingend nötig ist.

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Also es ist so umgesetzt:

  1. Setze ich das Property zum validieren nicht, so frage ich auch erst gar nicht ab ob die Datei da ist, also ich rufe sie nicht auf. Von daher wäre es an der Stelle auch egal ob PHP da ist oder nicht.
  2. Setze ich das Property und will somit eine Validierung haben, so wird die validate.php aufgerufen. Kann die Datei ohne Fehler aufgerufen werden entscheidet der Inhalt ob das Update durchgeführt werden kann oder nicht. Gibt es einen Fehler weil die Datei nicht da ist oder eben nicht ausgeführt werden kann, so wird das Update auf jeden Fall abgebrochen.

Unterm Strich also: falls ich kein PHP habe, so können in Zukunft dennoch Updates gefahren werden. Will ich jedoch eine Validierung brauche ich PHP.
Denkbar wäre die Validierung auch über einen Webservice laufen zu lassen. Aber egal wie man es dreht: auf dem Server muss etwas aktives laufen wenn ich Daten validieren will.

Ich hab das zudem durch ein Dictionary<string,string> gelöst.
Dabei ist das paar <key>,<value> im PHP durch $_REQUEST[key] abfragbar.
Es können somit beliebig viele Wertpaare an die validate.php gesendet werden.

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Hier nochmal kurz der Ablauf:

Das SelfUpdate-Objekt hat ein neues Property "ValidateStrings". Vllt benenn ich das auch noch um - zum Beispiel in "ValidationString" oder so. Is ja aber auch erstmal egal.

Alle Werte die man prüfen will oder die man im PHP-Skript will kommen da rein, also zum Beispiel:

Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("licensekey", "12345-123-12345");

SUpdate.ValidateStrings = dict;

Im PHP-Skript stehen dann die Variablen per $_REQUEST zur Verfügung:

[php]$licensekey = $_REQUEST["licensekey"];

if( $licensekey == "12345-123-12345" )
echo "Sie verwenden eine illegale Version";[/php]

Ich denke das ist leicht zu verwenden.

S
24 Beiträge seit 2007
vor 14 Jahren

Ok, jetzt wirds klar (auch mir 😄 )

Wer also kein PHP hat, benutzen kann, der setzt den Parameter einfach nicht und somit wird das Update auf alle Fälle ausgeführt.

So wirds sicher eine schöne Sache.
Falls Du optional auch ASP oder ASP.NET anbieten möchtest, da könnte ich Dich jederzeit gerne unterstützen.

M
11 Beiträge seit 2008
vor 14 Jahren

Hi, das Programm ist super, aber ich habe leider ein Probleme mit den Update laden. Da stürtzt dein Programm leider immer ab.

Also ich habe alles gemacht, wie in der Anleitung und habe dann mal ein Update hochgeladen zum testen. Es wird auch erkannt, das ein Update vorhanden ist und er fängt an zu laden, aber nachdem er die Update.exe runtergeladen hat (84 kb von 84kb) stürtzt das Programm mit den Fehler 500 ab.

------------------Fehler gefunden------------------

Der Webserver hat keinen Dateidownload unterstützt. X(

E
4 Beiträge seit 2009
vor 14 Jahren
K_Updater

Hallo

also ich muss auch sagen es ist eine wirklich extrem gute Komponente die du bisher entwickelt hast

aber ich habe dazu nun eine Verständnis frage
ich benutze den Updater in vb.net und er läuft auch super und das Handling ist wirklich sehr einfach und komfortable

aber als Beispiel
ich habe drei Updates

  1. ab Version 1.2.0
  2. für Version 1.1.0
  3. alle Versionen

das Programm ist Version 1.1.0 macht er nun update 2 u. 3 oder nur 3?

desweiteren wie ist es wenn ich nun nur eine dll update ?
das Hauptprogramm bleibt ja bei der jetzigen Version also würde er die dll immer wieder updaten wie kann man das Problem am besten lösen?

PS: ich freue mich auf die neue Version hoffe du schaffst es noch und verlierst nicht vorher die lust (was ich verstehen könnte ist ja Freeware und es kostet zeit)

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Hallo,
erstmal Danke fürs Lob. Kurz zum Stand: Ich habe nun soweit alle Features umgesetzt die ich in 1.4.0 haben will, lediglich mit der Vista UAC muss ich noch ne Kleinigkeit bereinigen. Diese Woche will ich dann ne Beta zusammenschnüren.

Die Logik im Updater ist die:

Erste Priorität haben "für"-Updates, also "für Version 1.1.0"
Zweite Priorität haben "ab"-Updates, also "ab Version 1.2.0", was in diesem Falle nicht greifen würde.
Dritte Priorität haben die "für alle"-Updates.

Er müsste also das 2. Update "für Version 1.1.0" liefern.

Das mit dem DLL-Update ist derzeit tatsächlich nicht möglich. Sprich: einzelne Dateien updaten ohne dass sich die Programmversion ändert.
Das möchte ich aber in der nächsten Version ermöglichen. So dass man ggf. auch Plugins oder Sprachdateien aktualisieren kann ohne die Programmversion ändern zu müssen.

L
770 Beiträge seit 2006
vor 14 Jahren

Warum machst du keinen "einfachen" Workaround?

Du kannst bis zu 4 Stellen für eine Version verwenden, wenn du (nach deinem Beispiel) nur 3 verwendest, so würde ich hergehen, und die ersten 3stellen für die tatsächliche Programmversion verwenden und diese auch anzeigen.

Die 4te Stelle kannst du für solche "DLL Updates" verwenden, musst du ja im Programm nicht verwenden, schneide es einfach weg.

Zumindest habe ich es so gelöst 😃

@EvilMM, würde es nicht mehr Sinn machen, wenn du zuerst "für alle" prüfst? Denn wenn "für alle" markiert ist, dann brauchst du ja keine fall unterscheidung.

Ich glaube, die meisten Updates wären "für alle", dann hast du anstatt 3 Prüfungen, nur 1, zumindest würde das für mich logischer erscheinen, aber das heißt noch lang nicht, dass es tatsächlich logischer ist 😉

Gruss,
Lion

lg Lion

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Das würde nicht wirklich Sinn machen.

Grund ist der: du hast nun 2 Programmversionen im Umlauf:

1.0.0
1.1.0

Nun willst du die Version 1.2.0 raushauen und die würdest du dann "für alle" machen.
Das wäre soweit ja ok. Würdest du nun aber inkrementelle Updates machen, also jeweils nur die Dateien reinpacken die sich von Version zu Version geändert haben, so müsste ja 1.0.0 erstmal auf 1.1.0 updates. Somit machst du ein Updatepaket für 1.1.0 und stellst ein "für Version 1.0.0". Somit ist sichergestellt, dass die Version 1.0.0 nicht direkt 1.2.0 zieht, sondern erstmal 1.1.0.

Gleiches gilt natürlich auch wenn du eine bestimmte ältere Version ersteinmal "vorbereiten" willst.

Beispiel: du hast 2 Versionen draußen:

1.0.0
2.0.0

Und nun machst du die Version 2.1.0. Du weißt nun dass das Update nur dann korrekt läuft, wenn wenigstens Version 2.0.0 aufgespielt ist. Du machst also ein Updatepaket für 2.1.0 mit "für alle", oder meinetwegen auch "ab 2.0.0" und ein Updatepaket auf Version 2.0.0 und stellst ein "für Version 1.0.0". Somit ist sichergestellt, dass Benutzer mit Version 1.0.0 immer ersteinmal auf 2.0.0 updaten.

Zumindest wären das die Fälle wo es sinnvoll ersteinmal die Updates zu ziehen die für eine ganz bestimmte Version gedacht sind.

L
770 Beiträge seit 2006
vor 14 Jahren

Habe ich etwas versäumt?

Ich dachte, er lädt immer nur die nächst neue Version und nicht die aktuellste?
D.h. wenn ich für alle habe, und eine Version mit 1.0 draussen habe, kommt zuerst das Update von 2.0 bevor 2.1 dran kommt?

Ich glaube das Feature Relase habe ich verpasst 😃 Denn mit "dieser Vermutung" würde meine Aussage wiederrum stimmen 😃

lg Lion

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Ah jetzt weiß ich was du ansprichst. Du meinst du hättest 3 Updatepakete:

1.1.0
1.2.0
1.3.0

und jeweils alle auf "für alle". Nun vermutest du der Update sucht sich automatisch die "nächst höhere" heraus, also wenn Programmversion = 1.0.0 dann kommt 1.10.
Wenn Programmversion = 1.2.0, dann kommt 1.3.0.

Mmh so ist die Logik derzeit nicht umgesetzt. Ich glaube aber so funktioniert es sogar - aber nur durch Zufall. Derzeit nimmt er einfach "das nächste" das er findet. Hast du deine Updatepakete zufällig in der Reihenfolge wie oben angelegt würde das auch passen. Aber hättest du ind er Liste erst 1.3.0, dann 1.2.0 und dann 1.1.0 würde er glaub ich zuerst 1.3.0 ziehen.

Da muss ich wohl nochmal ran und das überprüfen.

E
4 Beiträge seit 2009
vor 14 Jahren

Hallo

Danke für die Antwort.
also wenn ich es jetzt richtig verstehe macht es in den meisten fällen kein wirklich sin inkrementell und komplett (für alle) zu mischen also mann macht entweder von Version zu Version oder halt immer ein Paket für alle
oder noch besser da mann im Moment sowieso immer das Hauptprogramm mit beipacken muss macht eigentlich nur das "für alle" sinn oder sehe ich das nun komplett falsch?

da hätte ich dann auch gleich ein Vorschlag
könnte die update.exe nicht einfach die Versionen der Dateien auf dem Server mit dem Versionen der Dateien im Programm Ordner vergleichen und dann einfach all das laden was neuer ist und all das was nicht im Programm Ordner ist auch?
da brauch mann sich dann keine Gedanken mehr über reinfolgen und Flags machen.

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

So war das ganz früher mal, da hab ich einfach einen Hash über alle Dateien gemacht. Das hatte aber genau den Nachteil, das man wirklich immer nur "einen" aktuellen Stand auf dem Server hatte auf den das Programm aktualisiert hat. Klar war es dann sehr einfach möglich einzelne Dateien wir Plugins zu aktualisieren. Aber mehrere Updates parallel anzubieten war eben nicht möglich.

Ich werde aber genau dieses Verfahren wieder einsetzen wenn man einzelne Dateien aktuell halten will.
Es ist soweit aber schon richtig, das es sinnvoll ist entweder nur inkrementell zu arbeiten oder gleich immer "für alle".

Aber da kommt es immer auf den jeweiligen Anwendungsfall an.

E
4 Beiträge seit 2009
vor 14 Jahren

hallo

also das immer nur eine Version auf dem Server ist könnte man wirklich simpel
umgehen und zwar mit Unterordnern die dann je nach Flag benutzt werden
z.B.
Ordner: Beta, Release, Test, Inkrementell

so kann mann dann trotzdem auf alles zugreifen

L
770 Beiträge seit 2006
vor 14 Jahren

Also ich finde, die Lösung wie EvilMM sie verwendet schon passend und auch gut gelöst, zumindest für mein Teil.

Nur bislang habe ich "für alle" und inkrementell gemischt, daher wohl auch mein durcheinander. Wenn man das weiß kann man ja von Anfang an gezielt auf einen der beiden Wege gehen.

Also ich bin glücklich und freue mich auf die neue 😉

lg Lion

E
4 Beiträge seit 2009
vor 14 Jahren

Hallo

also ich will ihr ganz sicher nicht meckern oder kritisieren
ich habe doch weiter oben schon geschrieben das ich den k-updater richtig genial finde

das waren von mir nur Vorschläge die nach meinem Verständnis einige Probleme beheben würden und auch noch weniger Aufwand beim entwinkeln machen

aber da EvilMM das alles schon mal so drin hatte wird es da wohl auch Probleme gegeben haben

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren

Die Variante dass es Updatepakete gibt hat den Grund, das ein Update oft nicht nur aus Dateien besteht, sondern auch aus Diensten die gestartet, beendet werden müssen - eventuell auch Registry-Keys. Ein striktes versionieren der Updates ist so viel sinnvoller.

Aber wie gesagt möchte ich den anderen Mechanismus wieder drin haben, so das man für einzelne Dateien sagen kann: "such immer die neueste Version der Datei und lade sie" - ohne auf die Versionen achten zu müssen.

T
194 Beiträge seit 2006
vor 14 Jahren

Wieso kann ich für die Statistik nur die Jahre 2005 bis 2008 auswählen?

Thema geschlossen