nUpdate - Die komfortable Updatelösung

    • Release
    • Open Source

    Es gibt 990 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

      Achso ok. ;)
      Läuft sonst alles?

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Hallo,

      das sieht mir nach einem schweren Rechenfehler meinerseits aus. Kopiere bitte den StackTrace (Rechtsklick auf den Text in der Meldung und "Copy entire message") und poste ihn hier.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Aye Captain

      Bitteschön:
      Spoiler anzeigen
      System.ArgumentOutOfRangeException: Der Wert -16 ist für Value ungültig. Value sollte zwischen 'minimum' und 'maximum' liegen.
      Parametername: Value
      bei System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
      bei System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
      bei System.Windows.Forms.Control.Invoke(Delegate method)
      bei nUpdate.UI.Dialogs.UpdateDownloadDialog.ProgressChanged(Object sender, UpdateDownloadProgressChangedEventArgs e) in c:\Users\Dominic\Downloads\nUpdate-master\nUpdate-master\nUpdate\UI\Dialogs\UpdateDownloadDialog.cs:Zeile 148.
      bei nUpdate.Updating.UpdateManager.OnUpdateDownloadProgressChanged(Int64 bytesReceived, Int64 totalBytesToReceive, Single percentage) in c:\Users\Dominic\Downloads\nUpdate-master\nUpdate-master\nUpdate\Updating\UpdateManager.cs:Zeile 899.
      bei nUpdate.Updating.UpdateManager.DownloadPackages() in c:\Users\Dominic\Downloads\nUpdate-master\nUpdate-master\nUpdate\Updating\UpdateManager.cs:Zeile 418.
      bei System.Threading.Tasks.Task.InnerInvoke()
      bei System.Threading.Tasks.Task.Execute()
      Ich muss mir das morgen mal ansehen. Spontan hätte ich auf einen Fehler bei der Kalkulierung der Gesamtzahl der Bytes (Größe) des Pakets getippt, wegen der Größe bei Dir. Allerdings dürfte der Wert dann jedoch trotzdem nicht negativ sein, da das eine normale Division mit einem positiven Dividenden und Dividor ist.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

      tooostaaa schrieb:

      immer her damit

      Naja, das äußert sich dann eher in Form eines Updates. ;)

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Ich habe den Fehler gefunden. Es war nicht leicht, da der Wert der empfangenen Bytes plötzlich negativ zu sein schien, denn nur das wäre bei der mathematischen Operation logisch gewesen. Das konnte jedoch auch irgendwie nicht sein, da die while-Schleife immer geprüft hat, ob size, das zu den empfangenen Bytes addiert wird, größer als 0 ist.
      Es ging bis 2.147.483.647 und dann war es auf einmal danach negativ.

      Bis mir dieser Wert was gesagt hat: Das Problem ist, dass ich nur einen int (32bit) verwende und keinen long (64bit), denn das ist ja die ​int.MaxValue. Folglich wird der Wert innerhalb der Schleife plötzlich negativ und die Exception folgt.

      Danke an @tooostaaa, der mich darauf mit einem 11GB-Paket aufmerksam gemacht hat. Sonst wäre es mir vmtl. nie aufgefallen.
      Ein paar weitere Fehler wurden/werden noch gefixt und ich werde morgen ein Update veröffentlichen.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Update auf Version 3.0.0 Beta 2


      Randnotizen

      Das oben sieht wenig aus, ist aber auch stark verallgemeinert und ein paar Sachen wurden nicht erläutert. (Folgen aber jetzt)

      Es werden nun große Pakete unterstützt und auch einige Stellen, an denen dann entsprechend Fehler auftauchten, behoben. Das Hauptsächliche ist also in diesem Update darauf konzentriert.
      Auch wurden gewisse Hinweise eingefügt, um die Nutzer zu informieren, dass etwas länger dauern kann. Diese finden sich bei Paketen ab einer Größe von 1GB im Changelog.
      Zudem wird vor Download eines Updates nun überprüft, ob Ihr genug Speicherplatz zur Verfügung habt. Dies soll verhindern, dass Ihr Pakete stundenlang herunterladet und dann plötzlich ein Fehler kommt und alles abbricht.



      Im Installer wird der Updatevorgang nun nicht mehr abgebrochen, wenn ein Programm eine Datei blockiert, sodass diese nicht überschrieben werden kann. Stattdessen bekommt man eine Hinweismeldung und man kann das entsprechende Programm schließen und dann weitermachen.
      Ich danke @tooostaaa für die tatkräftige Unterstützung und seinem spitzen Internet. Ohne ihn wären gewisse Fehler vermutlich nicht ans Licht gekommen und selbst wenn, hätte ich diese lange suchen können, denn er hat mir mit wiederholtem Herunterladen von riesigen Paketen und starkem Debugging sehr geholfen, alle erdenklichen Infos zu bekommen, die ich benötigt habe. Selber hätte ich diese Probleme nie rekonstruieren können.



      Es wurden zudem ein paar Fehler bei den Statistiken behoben und korrupte bzw. ungültige Konfigurationen werden automatisch von der Admininstration repariert, wenn Ihr ein Projekt öffnet. Es kommt dann auch eine Hinweismeldung. Danke an @hendrikator, der mir hier geholfen hat, die Probleme zu finden.

      Das Importieren und Teilen von Projekten, die Statistiken benutzen, ist im Moment deaktiviert, da ich auf Grund der Zusammenhänge erst eine kleine Zwischenschicht programmieren muss, die alles richtig kombiniert und konvertiert.
      Das hätte nur jetzt zu lange gedauert und das Update musste jetzt endlich raus.
      Bald wird auch kein externer Zugriff mehr nötig sein und das MySQL-Zeugs, das von der Administration ausgeht, ebenso wie in der Library, über PHP funktionieren.



      Da die "Provide TAP"-Konfiguration nicht ganz ordentlich zu funktionieren schien (dank Visual Studio :thumbsup: ), habe ich da auch nochmal drüber geschaut und nun läuft alles.

      Im nächsten Update wird sich einiges ändern, sowohl intern, als auch bei den Features, die der User benutzt. Ich bin nämlich noch nicht mit allem so ganz zufrieden und weiter am Release-Update dran, das dauert aber noch, da es recht komplex ist, die ganzen Algorithmen korrekt zu implementieren und das sehr zeitaufwändig ist, zumal ich immer schauen muss, dass alles kompatibel bleibt. Ich bitte um Verständnis.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trade“ ()

      Das ist wegen Windows 10. Auf Windows Vista, 7, und 8(.1) sieht es aus wie Du es kennst. ;)

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Ich habe gerade das Updateprojekt für die Administration neu erstellen müssen und daher hatte sich der Public Key geändert. Folglich habe ich das und auch gleich noch 3 weitere Änderungen schnell in die 3.0.0 Beta 2 verpackt und neu hochgeladen.
      Es wurden noch weitere Punkte oben beim Changelog hinzugefügt. Ein neues Update hätte sich da imho jetzt nicht ganz gelohnt, auch wenn es so jetzt nicht ganz korrekt ist.

      Nun werden die Updates auch direkt über die Administration korrekt verfügbar sein. Ich hatte das bisher nie wirklich gemacht, obwohl ich ja dieses Feature habe. :whistling:

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Insgesamt eine sehr gute Updatelösung.

      Ich bin generell ein Fan davon, wenn Programme oder Tools sehr detaillierte Funktionen haben, aber dennoch einfach zu benutzen sind.
      Das ist hier absolut der Fall.
      Deine Updatelösung passt sehr gut in das Design von Windows und ist, für jemanden der sich mit sowas auskennt, fast selbsterklärend.

      Dokumentation bzw. Tutorials sind sehr gut.

      Außerdem gefällt mir die Signierung sehr.
      Ebenfalls gefällt mir, dass man alles einfach anpassen kann. Das zeigt, dass der Entwickler sich genaue Gedanken über die Struktur seines Programmes gemacht hat. Sehr gut! :thumbup:

      Alles in allem ein super Tool und mit jeder Erweiterung noch besser.

      Sahnehäubchen natürlich, dass es OpenSource ist.

      Ich hatte schon mit @Trade gesprochen und werde mich in Zukunft evt. etwas mit der Doku des Codes beschäftigen :)
      Oh, dankeschön. :)
      Wie @LaMiy schon gesagt hat, haben wir vor ein paar Tagen privat geschrieben und er wird mich auch nun etwas unterstützen und ich freue mich, ihn als Kollaborator begrüßen zu dürfen.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Moin,

      zunächst danke für so viele Downloads. :D
      Ich melde mich, weil ich mir gedacht habe, dass mich und @LaMiy evtl. noch ein oder zwei Leute unterstützen könnten, zumal er jetzt paar Wochen nicht da ist und dafür ist es ja auch OpenSource.

      Meine Anliegen wären:
      • Doku verbessern und ausweiten
      • Multilanguage für die Administration
      • Sachen verbessern, wo es noch nötig ist und vereinfachen, da ich manches recht schnell implementiert habe
      • Beratungen über Änderungen und Verbesserungen
      • Neue Sachen implementieren


      Somit könnte man das schneller machen, denke ich, da ich zudem noch mit @Gonger96 an GCL arbeite, für OW-Shredder Übersetzungen schreibe und hin und wieder an ein paar anderen Sachen. Schule ist jetzt größtenteils geschafft. ;)
      Bezahlung kann ich keine anbieten. Das wäre auf freiwilliger Basis, falls jemand halt mitmachen will. Würde natürlich im Informationsdialog auch eingetragen etc.

      Ach ja, Leute, die mehrere Sprachen sprechen, sind auch willkommen, um das dann mal zu übersetzen. Dafür steht das Grundgerüst schon, es muss nur überall eingesetzt und erweitert werden.

      Falls jemand Interesse hat, der vorzugsweise schon mit nUpdate etwas vertraut ist und sonst natürlich auch mit .NET & C#, kann er gerne hier antworten, würde mich freuen. :)

      PS: Könnte etwas Arbeit werden, aber zusammen sicher leichter.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Mit Finnisch, oder?
      Ich persönlich könnte Deutsch, Französisch und Spanisch managen, kann aber dennoch jemand anderes, der die Sprachen auch besser spricht, übernehmen. ;)

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Übersetzen könnte ich allgemein Englisch-Deutsch, Deutsch-Englisch und ich könnte mich an die Dokus rantrauen wenn du magst.

      Implementierungen und verbesserungen möächte ich aufgrund von mäßigen C#-Kenntnissen nicht anbieten :D
      Danke, aber deutsch werde ich vmtl. selbst managen.^^
      Mäßige C#-Kenntnisse sind halt bei Doku auch so 'ne Sache, da halt schon der Zusammenhang etwas klar sein sollte und auch gibt es ja Guidelines, die man beachten muss.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Aaaabbber beachte: Doku ist nicht gleich Doku.

      Es gibt Dokus die, oberflächlich die Funktionen aufzeigen, und es gibt Dokus, welche den kompletten Aufbau durchleuchten und Funktionsweise offenlegen.

      Ich ging von ersterem aus, aber ich kanns mir doch trotzdem antun oder?

      Kann ja auch sein, dass nur ich der Meinung bin das ich schlechte C#-Kenntnisse habe :D