nUpdate - Die komfortable Updatelösung

    • Release
    • Open Source

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

      Bin ich doof oder warum nimmt er

      C#-Quellcode

      1. if(manager.SearchForUpdates)


      nicht an?

      Grüße
      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Weil das keine Methodengruppe ist und man nicht wie in VB.NET einfach die Klammern weglassen kann.

      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 :!:
      Habs schon rausgefunden, danke. :P

      Habe leider ein Problem entdeckt, welches ich bei UpdateSystem.NET auch schon hatte.

      Und zwar:
      Sobald ich das Update prüfe, werden meine Einstellungen, welche sich in einer App.conf befinden nicht mehr gespeichert (gebe immer andere via Hand in der Anwendung ein). Denke das hat was mit dem PublicKey zu tun..+

      Ich speicher sie so:

      C#-Quellcode

      1. System.Console.WriteLine("[>] Name:");
      2. string username = System.Console.ReadLine();
      3. System.Console.WriteLine("[>] Passwort:");
      4. string password = System.Console.ReadLine();
      5. ClientSettings.Username = username;
      6. ClientSettings.Password = password;


      XML-Quellcode

      1. <appSettings>
      2. <add key="Username" value="name" />
      3. <add key="Password" value="oassword" />
      4. </appSettings>


      C#-Quellcode

      1. public string Username
      2. {
      3. get { return GetSetting() != string.Empty ? GetSetting() : "username"; }
      4. set { SetSetting(value); }
      5. }
      6. public string Password
      7. {
      8. get { return GetSetting() != string.Empty ? GetSetting() : "password"; }
      9. set { SetSetting(value); }
      10. }


      Set und Get:

      C#-Quellcode

      1. private string GetSetting([CallerMemberName] string key = null)
      2. {
      3. return ConfigurationManager.AppSettings[key];
      4. }
      5. private void SetSetting(string value, [CallerMemberName] string key = null)
      6. {
      7. var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
      8. if (key != null) configFile.AppSettings.Settings[key].Value = value;
      9. configFile.Save();
      10. }


      Habe jetzt rausgefunden: Sobald ich die Anwendung schließe, speichert er die Settings erst. Wenn ich sie wieder öffne nimmt er die, die ich gerade eingegeben hatte.

      Meine Projekte:

      WizSearch: 100%
      Ansehen

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „FlorianJ“ ()

      FlorianJ schrieb:

      Habe leider ein Problem entdeckt, welches ich bei UpdateSystem.NET auch schon hatte.
      Das klingt dann allerdings eher nach einem Problem, das nicht auf seiten nUpdate liegt.
      Ich kann Dir da leider nicht ganz folgen, weil ich das selbst noch nie gebraucht habe.

      FlorianJ schrieb:

      Habe jetzt rausgefunden: Sobald ich die Anwendung schließe, speichert er die Settings erst. Wenn ich sie wieder öffne nimmt er die, die ich gerade eingegeben hatte.
      Ist das jetzt die Lösung?

      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 :!:
      Na ja, sobald ich aber das Update prüfe kommt ja erst der Fehler, sobald ich es rausnehme ist alles i.O
      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Was für ein Fehler?

      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 :!:
      Also ich gebe die Daten ein, schließe dann das Programm und öffne es wieder. Erst dann werden die Daten aus der App.conf gelesen, die ich zuvor beim ersten öffnen eingegeben habe.
      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Und das kommt nur vor, wenn Du ValidatePackages nutzt, oder wie? Zeige mir bitte mal den gesamten Code.

      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 :!:

      C#-Quellcode

      1. public static void RunUpdate()
      2. {
      3. ConsoleUpdateManager manager = new ConsoleUpdateManager(new Uri("HOSTER"), "KEY", new CultureInfo("en"));
      4. if(manager.SearchForUpdates())
      5. {
      6. System.Console.WriteLine("Update gefunden. [Enter zum installieren]");
      7. System.Console.ReadLine();
      8. System.Console.WriteLine("Lade Update herunter...");
      9. manager.DownloadPackages();
      10. System.Console.WriteLine("Installiere Updates..");
      11. manager.InstallPackage();
      12. }
      13. else
      14. {
      15. System.Console.WriteLine("Keine Updates gefunden.");
      16. }
      17. }


      und im Main rufe ich RunUpdate(); einfach auf.
      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Aber die Updates werden da ja gar nicht geprüft. Drum verstehe ich den Zusammenhang nicht. Vor allem, wo werden dort diese Daten gespeichert?

      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 :!:
      In der App.conf speicher ich diese Daten. Wie ich die Daten speicher ist oben bereits ein Stück Code.

      Grüße
      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Ja, aber wo wird der Code aufgerufen? Deswegen auch der ganze Code und nicht nur der Updateteil.
      Und was meintest Du jetzt mit Updates prüfen?

      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 prüfe auf Updates mit SearchForUpdates.

      Im Main ist das hier:

      C#-Quellcode

      1. RunUpdate();
      2. System.Console.ForegroundColor = ConsoleColor.Red;
      3. System.Console.WriteLine("[>] Name:");
      4. string username = System.Console.ReadLine();
      5. System.Console.WriteLine("[>] Passwort:");
      6. string password = System.Console.ReadLine();
      7. ClientSettings.Username = username; // setzt den namen in die app.conf
      8. ClientSettings.Password = password; // setzt das passwort in die app.conf
      9. string writeName = ClientSettings.Username; //holt name aus der App.conf
      10. string writePass = ClientSettings.Password; //holt passwort aus der App.conf
      11. System.Console.WriteLine("Name: " + writeName + " Passwort: " + writePass + " richtig?"); //zeigt Name und Passwort an

      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Achso, Du prüfst auf Updates, nicht die Updates.
      Jo, das dachte ich mir. Du führst ja die ganze Routine erst danach aus. Bis das durch ist, hat InstallUpdates Dein Programm schon lange beendet.

      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 :!:
      Das ist das Void:

      C#-Quellcode

      1. ConsoleUpdateManager manager = new ConsoleUpdateManager(new Uri("HOSTER"), "KEY", new CultureInfo("en"));
      2. if(manager.SearchForUpdates())
      3. {
      4. System.Console.WriteLine("Update gefunden. [Enter zum installieren]");
      5. System.Console.ReadLine();
      6. System.Console.WriteLine("Lade Update herunter...");
      7. manager.DownloadPackages();
      8. System.Console.WriteLine("Installiere Updates..");
      9. manager.InstallPackage();
      10. }
      11. else
      12. {
      13. System.Console.WriteLine("Keine Updates gefunden.");
      14. }


      das Problem tritt ja auch auf, wenn nichts gefunden wurde.
      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Dann keine Ahnung. Aber an nUpdate kann es dann nicht liegen.

      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 :!:
      Na ja, irgendwas muss es auf jedenfall tun, weil wenn ich das RunUpdate() aus dem Main rausnehme passiert es nicht..
      Meine Projekte:

      WizSearch: 100%
      Ansehen
      Also: Du setzt Deine Daten. Erst beim Beenden der Anwendung werden die dann effektiv gespeichert. Wenn Du RunUpdate nicht aufrufst, dann werden sie sofort gespeichert, oder?
      Ich verstehe es nicht. SearchForUpdates macht eig. nichts, was da hinderlich sein sollte.

      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 :!:
      So, habe eine Lösung gefunden!
      Und zwar kann man normalerweise in die App.Conf während der Runtime nicht speichern.

      Deshalb folgendes:

      C#-Quellcode

      1. private void SetSetting(string value, [CallerMemberName] string key = null)
      2. {
      3. var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
      4. if (key != null) configFile.AppSettings.Settings[key].Value = value;
      5. configFile.Save(ConfigurationSaveMode.Modified); //Speichert während der Runtime. Vorher: configFile.Save();
      6. ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); //Aktualisiert die Daten
      7. }


      Kann man irgendwie die neue Versionsnummer ausgeben und den Changelog?

      Grüße
      Meine Projekte:

      WizSearch: 100%
      Ansehen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FlorianJ“ ()