Laden...

AppDater (ehemals K_Updater)

Erstellt von EvilMM vor 16 Jahren Letzter Beitrag vor 14 Jahren 225.122 Views
Thema geschlossen
EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 16 Jahren

Hi,
ich hab mir nun ne Lizenz für den Windows Server besorgt und setze heute Abend den Server mit IIS auf. Dann kann ich endlich vernünftig gegen den Server testen. Vllt schaffe ich dann ja schon übers WE die Probleme damit zu lösen.

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

So habe nun etwas mit dem ISS und vor allem dem IIS-FTP rumgespielt.
Zunächst ist es so:
Will man sich Anonym anmelden, so braucht man als Benutzerdaten:

Username: Anynomous
Passwort: [leer]

Ich bin mir jetzt nicht sicher ob anonym angemeldete Benutzer überhaupt schreibrechte bekommen können. Wenn es gewünscht ist kann ich natürlich eine Checkbox "Anonym anmelden" auf die Oberfläche pflanzen.

Die sonstigen Benutzer die man mit dem ISS-FTP benutzen kann sind die Benutzer die man am Windows-Server eingerichtet hat.

Konnte mit dem ISS-FTP erfolgreich ein Projekt anlegen. Kann das jemand bestätigen? Jedoch kann ich das Projekt dann zwar laden, aber klicke ich auf "Updates" erschreint bei mir folgender Fehler:

Kann diesen Fehler im Zusammenhang mit dem ISS jemand bestätigen?

J
222 Beiträge seit 2006
vor 16 Jahren

das hat jetzt ncihts mit dem ISS ftp zu tun aber
wenn ich die server version aktualisieren wollte konnte er das nciht weil er dieverse Dateien nciht löschen könnte weil keine rechte war aber mit passwort angemeldet ....

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

Um welchen FTP hat es dich dabei gehandelt?

J
222 Beiträge seit 2006
vor 16 Jahren

heist pure ftp

das hat der server ausgespuckt wenn ich mich mit filezilla conecte



Antwort:	220-Welcome to Pure-FTPd.
Antwort:	220-You are user number 5 of 400 allowed.
Antwort:	220-This is a private system - No anonymous login
Antwort:	220 You will be disconnected after 15 minutes of inactivity.


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

Joa und im FileZilla darfst du Ordner erstellen und Dateien reinkopieren? Schreibrechte darf ich mir aus der Anwendung ja nicht geben - die müssen ja schon vorhanden sein.

J
222 Beiträge seit 2006
vor 16 Jahren

ja klar hab ja mit dem passwort vollen zugriff auf den ftp

bei meiner probe solange das file am ftp server ist kann kein neues raufgespielt werden also kann was beil löschvorgang nicht stimmen..... als exception kommt glaub ich dann ein timeout ... wäre vielleicht intressant die ftp logs mitzuschreiben beim update ...

409 Beiträge seit 2006
vor 16 Jahren

Hi,

wäre es möglich, dass man wahlweise die zu beenden Programme wieder, wie früher, "abschiessen" lassen kann? Ich habe nämlich das Problem, dass meine Tray-Anwendung nicht beendet werden kann, so dass man sie selbst beenden muss, dass das Update beginnt.

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

Natürlich ist das prinzipiell alles möglich, aber schön ist es natürlich nicht.
Letztlich solltest du eher in deiner Anwendung die Beenden-Aufforderung abfangen und darauf reagieren.

Ich überlege aber mal ob ich das nicht auch parametrisierbar mache. Aber das wird dann erst in einer späteren Version gemacht.

409 Beiträge seit 2006
vor 16 Jahren

Ja, ich weiß nur nicht mit was ich das abfangen soll. Welcher CloseReason wäre das?

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

FormClosing kannst nehmen, das würde aufgerufen werden. Der K_Updater wartet dann ne Minute drauf bis die Anwendung geschlossen ist und würde anschließend einen Fehler zeigen.

409 Beiträge seit 2006
vor 16 Jahren

Ja, aber das Problem ist, dass ich das Beenden abfange und die Form statdessen in die Tray minimiere.

Deshalb prüfe ich vorher auch ob der CloseReason == CloseReason.WindowsShutdown ist, weil es sonst das Runterfahren blockieren würde.

Deshalb muss ich wissen, welcher CloseReason das ist, wenn der Updater das Programm beenden will.

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

Ah, das war gemeint... mmh das ist eine interessante Frage. Derzeit setze ich das gar nicht explizit. Ich muss mal schauen wo ich das überhaupt kann. Hast du das grad parat?

409 Beiträge seit 2006
vor 16 Jahren

Hier mal mein Code


private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.WindowsShutDown)
            {
                reallyClose = true;
            }

            if (!reallyClose)
            {
                HideMainForm();
                e.Cancel = true;
            }
            else
            {
                Application.Exit();
            }
        }

Jedoch weiß ich nicht wie ich darauf reagieren soll, wenn der Updater die Anwendung beenden will.

S
24 Beiträge seit 2007
vor 16 Jahren

Wie siehts mit der Fehlersuche aus?
Kommt die angekündigte DebugDLL noch?

409 Beiträge seit 2006
vor 16 Jahren

Ok, mein Problem hat sich erledigt, da ich das minimieren in die Tray nun eh über das Resize-Event mache.

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

Also das Problem konnte ich schon etwas lokalisieren... allerdings wäre es sehr sinnvoll für mich wenn ich von ein paar Leuten ein paar K_Updater-Setttings bekommen könnte bei denen es Probleme gibt. Dazu dann noch eine genaue Angabe welcher Server (HTTP/FTP) am Laufen ist, damit ich diese Umgebungen dann auch ggf. bei mir in einer VM nachstellen kann.

So kann ich dann von hier aus direkt auf euere Server testen. In der Regel reicht dafür ja schon die HTTP-Adresse zum Update-Ordner.

T
179 Beiträge seit 2007
vor 16 Jahren

eine frage:
ist es wirklich nötig, die update.exe mit hochzuladen?
weil ich würd für mein projekt gerne n freespace verwenden, nur da sind exe-dateien leider gesperrt.

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

Das ist schon notwendig weil man nur auf diesem weg neue Updater zum Kunden bekommen kann. Bzw. kann so vor einem eigentlichen Updater der Updater selbst aktualisiert werden.

Aber es ist an der Stelle natürlich auch denkbar das man den Updater selbst verpackt oder eine andere Dateiendung gibt um dieses Problem zu umgehen. Ich schreibs mir auf jeden Fall auf die ToDo-Liste, dann setz ich das auch mal um.

T
179 Beiträge seit 2007
vor 16 Jahren

schön
(schade eigentlich, dass das ganze nicht open source ist 😉 )

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

Ja das Nicht-OpenSource-Dasein ist darin begründet, dass es derzeit eh unrealisitisch mit mehreren Personen an dem Projekt zu arbeiten. Der Verwaltungsaufwand und der Planungsaufwand ist alleine über ein Forum und ohne persönlichen Kontakt praktisch nicht möglich. Es wären zu viele Dinge zu klären und einzuhalten. Derzeit zum Beispiel führe ich Unit-Testing in das Projekt ein zur Qualitätssicherung und das müsste ich dann natürlich auch von allen beteiligten auch erwarten. Einfach nur OpenSource um den Code zu "verschenken" möchte ich nicht.

Letztlich bleibt natürlich noch die Tatsache, dass ich eine kommerzielle FTP-Komponenten verwende und somit scheidet OpenSource ja praktisch schon aus.

J
51 Beiträge seit 2007
vor 16 Jahren

Ich arbeite jetzt schon seit ein paar Prjekten mit deinem Updater und ich muss sagen, ich bin total zufrieden ! Es ist wirklich ein super Sache !

Jedoch fehlt mir ein wenig die Einstellungsmöglichkeit im "Updateverfahren". KÖnntest du da nicht zum Beispiel die Möglichkeit bieten, dass das Update mehr im Hintergrund durchgeführt wird. Un d das der Benutzer so gut wie gar nichts davon mitbekommt ?!

Fände ich noch eine Sinnvolle Erweiterung 🙂

Ansonsten: Weiter so !

J
1.114 Beiträge seit 2007
vor 16 Jahren

Das könnte auch für mich interessant sein. Der Fortschrittdialog halte ich für sinnvoll, aber es wäre nett, wenn man die Meldung am Schluss überspringen könnte, dass der Updatevorgang abgeschlossen ist... In meinem Fall wird nach dem Update die Anwendung neu gestartet, da könnte ich auf die Meldung verzichten. Den Endanwender irritiert das nur, und bei mir klingelts Telefon, was er denn da jetzt machen soll, ob er wirklich OK drücken soll (diese DAUs :evil🙂

3.511 Beiträge seit 2005
vor 16 Jahren

Hallo,

und erstmal glückwunsch zu diesem Projekt. Sieht wirklich sehr gut aus. So, ich komm dann mal zum Thema 🙂:
Zur Zeit benutze ich InstallShield für MSI, was allerdings mittlerweile zu komplex und auch zu teuer geworden ist. Von den Meinungen hier, die ich gelesen habe, kann man ja wirklich nichts negatives feststellen, darum wollte ich mal anfangen dein Projekt zu testen.
Allerdings gibt es ein Punkt, der für mich ziemlich wichtig ist. Und zwar automatische Scripte auf Datenbanken ausführen. Ich hab fast bei jedem Update der Projekte Datenbankänderungen drin. Mal sehr kleine, aber auch verdammt große und auch relevante. Beim InstallShield kann man die Scripte nach dem Update ausführen lassen. Wenn dabei ein Fehler aufgetreten ist, wurde dann ein Rollback gemacht.

Sowas in der Art bräuchte ich auch 😄. Ist da was geplant? Gibt es ein Workaround dazu? Wichtig ist wirklich dabei, das wenn ein Fehler im Script auftritt, das halt ein Rollback des gesamten Updatevorganges gemacht wird, damit keine inkompatibilitäten auftreten.

[Edit] Achja, ein Siltentupdate wär natürlich dann die Krönung 😉

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

J
1.114 Beiträge seit 2007
vor 16 Jahren

Als Workaround geht eigentlich schon heute, dass du nach Abschluss des Update eine Anwendung automatisch startest.

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

Ja auf Dauer ist das natürlich umsetzbar mit den Skripten. Derzeit hab ich aber noch vieles andere priorisiert. Aber ich werde mich ranhalten.

Ich bräuchte nun mal ein paar Infos von euch zu Diagnosezwecken. Und zwar sieht es mit diesem "Update wird vorbereitet..." - Fehler wohl so aus, dass er entweder immer auftritt oder nie. Irgendwie scheint das Serverabhängig zu sein. Damit ich nun richtig dagegen testen kann wäre es mal interessant zu erfahren welche Server (HTTP-Server in dem Fall, die FTP-Server machen keine Probleme) nun im Einsatz sind. Sowohl bei denen, bei denen der Fehler nicht auftritt, als auch bei denen, bei denen der Fehler auftritt.

In dem Zusammenhang vllt auch interessant auf welchem Server-OS das ganze läuft. Die Infos könnt ihr mir per Mail schicken oder auch PM.

Das mit den "unsichtbaren" Updates bzw. Updates im Hintergrund ist definitiv geplant.

3.511 Beiträge seit 2005
vor 16 Jahren

@Jelly:
Aber im Anschluss ist ziemlich kritisch. Wenn da ein Script in die Binsen geht, habe ich keine Möglichkeit mehr auf ein Roolback, oder?
Gibt es die Möglichkeit vor dem Update eine Anwendung zu feuern? Das würde auf jeden Fall weiterhelfen.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

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

Also wenn ich das noch während dem Updatevorgang ausführe geht es theoretisch schon dann ein Rollback zu machen wenn was schief ging.

J
1.114 Beiträge seit 2007
vor 16 Jahren

Aber im Anschluss ist ziemlich kritisch. Wenn da ein Script in die Binsen geht, habe ich keine Möglichkeit mehr auf ein Roolback, oder?

Hm, das ist wohl richtig.

Wobei ich mir eher die Frage stelle, ob das Ausführen eines Skriptes überhaupt von einer Clientanwendung aus heraus gestartet werden soll. Ist das nicht normalerweise eine Angelegenheit für den DB Server... Oder legst du lokale Datenbank ab?... Aber das ist ja eigentlich nicht das Thema hier.

3.511 Beiträge seit 2005
vor 16 Jahren

Stimmt, ist nicht Thema hier, aber ich beschreib es trotzdem kurz warum:

Der Updatemechanismus ist etwas kompliziert 🙂
Das ist abhängig vom Kunden. Einige kleinere Kunden, haben den SQL Server z.B. auf einer Clientmaschine laufen, da sich ein eigenständiger Server einfach nicht lohnen würde, bzw. denen zu teuer ist. Dann gibt es Kunden, die haben einen eigenständigen Server.
Deswegen ist die Updaterei etwas komplizierter. Bei Kunden mit eigenständigen Server ist es einfach: Da zieht der Server sich das Update und verteilt es bei erfolg an die Clients per AD. Bei den kleineren Kunden, müssen die Clients das erledigen, wobei meistens bei der Installation nur ein Rechner angegeben wird, der auch das DB Update machen soll. Die anderen laden nur die neue Version und prüfen gegen die DB, ob die Struktur schon die neue ist.

Ist ehrlich gesagt noch kein schöner Mechanismus, aber hab momentan keine Zeit diesen zu optimieren. Das wollte ich halt dann in einen Schritt machen, wenn ich den Updater als solches ändere. Ideen habe ich dazu bereits.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

F
27 Beiträge seit 2006
vor 16 Jahren

hi,

ich benutze deine updatekomponente schon seit einiger zeit in meinem projekt.
das ding ist einfach super !

aber ich hätte da ein anliegen an dich.
mich stört es ziemlich, dass man nach einem update nochmal auf "ok" klicken muss.
wäre es möglich die komponente so zu verändern, dass dieses "auf ok klicken" wegfällt ?
also so, dass das programm direkt nach einem update wieder startet.

gruß
fishmobb

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

Hi,
erstmal vielen Dank für das Lob.
Das ist ein mittlerweile oft geäußerter Wunsch. Werde ich in die nächste Version mit aufnehmen. Leider wird die nächste Version noch einige Tage (hoffentlich nicht Wochen) auf sich warten lassen.

Derzeit schreibe ich unmengen UnitTests für das Teil, damit jede neue Version möglichst automatisiert gegen alle möglichen Serverkombinationen testen kann. Das geht soweit ganz gut voran, braucht aber leider eben Zeit.

Aber ich bin noch eifrig am werkeln. Also immer her mit den Verbesserungsvorschlägen 🙂

K
488 Beiträge seit 2006
vor 16 Jahren

Hey,

hab dein System seit gerade in Benutzung.
Finde es klasse!!!
Reife Leistung!

Allerdings ist mit ein Fehler aufgeallen:
Wenn man mehrmals auf die Sortierfunktion der ListView im Hauptfenster links unten (Projektliste) klickt, kommt ein Error und die Liste ist danach nicht mehr anklickbar.

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

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

Erstmal Danke für das Lob 🙂
Beim Projektöffnen lief bisher eh einiges schief. Zum Einen kamen Fehler über ausgelastete BackgroundWorker, dann Probleme mit WSACancelBlocking und und und...
In der nächsten Version ist die Startseite komplett umgeworfen und die Fehler (auch der den du gerade beschrieben hast) treten nicht mehr auf.

C
14 Beiträge seit 2008
vor 16 Jahren

Hi Leute. Nachdem ich angefangen habe mich seit kurzem mit C# zu beschäftigen, wollte ich auch mal hier anmelden.

Erstmal an EvilMM: Ich finde das wirklich super, dass du deine Software hier zur Verfügung stellst und auch noch soviel dokumentierst. Ich habe versucht das zu testen, allerdings auf einem IIS, weil ich keinen FTP zur Verfügung habe. Ich habe mit Visual Studio 2005 einen kleinen Taschenrechner "programmiert" und testweise versucht da ein Update einzubauen. Der Code sieht folgendermaßen aus:

K_Updater.Settings KSettings;
            KSettings.AuthenticateMode =
            K_Updater.SelfUpdate.authentication.x509certificate;
            KSettings.AuthenticateUsername = "";
            KSettings.AuthenticatePassword = "";
            KSettings.CurrentAppVersion = "1.0.0";
            KSettings.Language = K_Updater.SelfUpdate.language.german;
            KSettings.Proxy = "";
            KSettings.ProxyUsername = "";
            KSettings.ProxyPassword = "";
            KSettings.UpdatePath = "hierstehtdieAdresse";

            K_Updater.SelfUpdate SUpdate = new K_Updater.SelfUpdate(KSettings);
            K_Updater.UpdateCheckResult KResult = SUpdate.Check();

            if (KResult.Code == 0)
            {
                MessageBox.Show("Kein Update verfügbar");
            }
            else if (KResult.Code == 1)
            {
                MessageBox.Show("Update verfügbar\r\n" +
                "Neue Version: " + KResult.NewVersion + "\r\n" +
                "Beschreibung: " + KResult.Description);
            }
            else
            {
                MessageBox.Show("Fehler bei der Updatesuche");
            }

Ich bekomme die Fehlermeldung 800, die ja "Unbekannter Ausnahmefehler bei Download von updates.xml" besagt. Allerdings steht in deiner Dokumentation nicht, dass ich irgendwo eine updates.xml dabei erstellen muss.

Und wenn ich auf "Updates" gehe um ein Updatepaket zu erstellen, bekomme ich folgende fehlermeldung: "Fehler bei Schritt 1 - unable to determine if file 'updates.xml' exists."

Irgendetwas scheine ich ja falsch zu machen. Ich weiss leider nicht was und ich muss gestehen, dass ich nicht besonders viel Ahnung von programmieren habe, wie es mein Nick eigentlich schon verrät. Ich hoffe, ihr könnt mir helfen.

Ich benutze Windows XP Pro 2002 SP2 und K_Updater 1.2.1

Grüße,
csharpnoob

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

Hallo,
mmh da kann ich an der Stelle erstmal nur raten 🙂
Welche Serverumgebung verwendest du? Solltest du einen IIS (HTTP+FTP) verwenden, so musst du darauf achten, dass beide Server auf den selben Ordner zeigen. Standardmäßig zeigt der FTP auf "ftproot" und HTTP auf "httproot". Somit wären die per FTP hochgeladenen Dateien über HTTP gar nicht erreichbar.

Ansonsten ist natürlich wichtig, dass der UpdatePath auch auf jeden Fall auf den Ordner zeigt in dem die per FTP hochgeladenen Dateien liegen.

K
488 Beiträge seit 2006
vor 16 Jahren

Hey,

wollte grade ein Updatepaket erstellen.
Dateiname: Setup_002.msi.
Kommt direkt wenn ich auf speichern klicke "Object not set Reference." oder so...

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

K
488 Beiträge seit 2006
vor 16 Jahren

Also das ist nur wenn man die Installationsmethode auswählt!
Bei Schritt 1

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

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

Ja der Fehler wurde hier schon erwähnt. Ist auch in der nächsten Version behoben.

K
488 Beiträge seit 2006
vor 16 Jahren

Wann gibts die den? Breuchte es dringend =((((

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

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

Wenn sie fertig ist, ist sie fertig 🙂
Ca. Anfang nächster Woche ist ein realistisches Datum.

J
51 Beiträge seit 2007
vor 16 Jahren

Huhu,

bei mir bleibt das Programm seit neustem hängen bei:

--> Alte dateien löschen

Woran kanns liegen ?

W
196 Beiträge seit 2007
vor 16 Jahren

Hallo eine Frage hier im Board gibt es ja den Thread gemeinsame Aufgabeverwaltung. Dieser benutzt auf die .dll von dir. Nach dem Update startet er dann auch gleich automatisch. Nur mein Programm startet nach dem Update nicht wieder automatisch. Wie kann man das bewerkstelligen?

SUPER Programm!!!

mfg wizer

J
51 Beiträge seit 2007
vor 16 Jahren

@ wizer,

du musst das Programm, welches starten soll eintragen. Das machst du, wenn du ein neues Updatepaket erstellst unter "Starten".

mfg

K
488 Beiträge seit 2006
vor 16 Jahren

Gibt schon was neues?

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

J
222 Beiträge seit 2006
vor 16 Jahren

Huhu,

bei mir bleibt das Programm seit neustem hängen bei:

--> Alte dateien löschen

Woran kanns liegen ?

selbe problem hab ich auch als ich die derzeit neueste version installiert habe

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

Mmh ich kann da jetzt so direkt auch nichts dazu sagen... schaut mal im Temp-Ordner unter K_Updater nach. Da sollte hoffentlich ne log-datei vom Updatevorgang liegen. Eventuell steht das was genaueres drin.

Werde aber an der Stelle für die nächste Version nochmal Verbesserungen vornehmen.

Bleibt der Vorgang einfach "hängen"? Also keine Fehlermeldung oder dergleichen? Sowas sollte natürlich niemals passieren, muss ich später direkt mal untersuchen wieso sowas passieren kann.
Ist der Fehler erst bei 1.2.0/1.2.1 aufgetreten oder schon vorher?

Gibt schon was neues?

Ich weiß, dass du sehnlichst auf die neue Version wartest, aber ich kann leider nicht zaubern und meine Zeit ist recht begrenzt. Ich versuche, dass ich bis nächste Woche die ganzen Fehler draußen habe. Aber garantieren kann ich da natürlich nichts.

K
488 Beiträge seit 2006
vor 16 Jahren

Danke =)
Hab dich lieb 😜

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

L
770 Beiträge seit 2006
vor 16 Jahren

bei mir bleibt das Programm seit neustem hängen bei:

Dieses Problem hatte ich auch, aber bei war es, weil gewisse Dateien von anderen Prozesse verwendet wurden (einfachste Beispiel ist, die Anwendung doppelt zu starten🙂 ).

Ist das vielleicht auch bei euch das Problem?
Wenn man darauf achtet, rennt der Vorgang eigentlich immer ohne zu meckern durch.
lg Lion

lg Lion

J
51 Beiträge seit 2007
vor 16 Jahren

Jap, hab drauf geachtet ! Ist nur einmal vorhanden.

Bleibt einfach nur haengen und macht nicht weiter ...

//EDIT: welcher temp ordner ?

Thema geschlossen