Laden...

AppDater (ehemals K_Updater)

Erstellt von EvilMM vor 16 Jahren Letzter Beitrag vor 14 Jahren 225.086 Views
Thema geschlossen
115 Beiträge seit 2008
vor 14 Jahren

Hallo EvilMM,

ich hab mich nach einer kleinen Pause nochmal mit Deinem AppDater und den Proxys beschäftigt.

In dem Zusammenhang würde ich ganz gerne wissen, wie Du intern die Proxys behandelst? Ich habe es nämlich noch immer nicht hinbekommen aus dem Firmennetzwerk heraus eine Verbindung zu meinem Update-Server zu bekommen. Dort wird im InternetExplorer eine proxy.pac verwendet und dann vom ProxyServer eine Authentifizierung erwartet.

Vielleicht bin ich auch nur zu unerfahren, um das korrekt umzusetzen. Einen UserAgent weiterzugeben, wie mir hier im Forum schon vorgeschlagen wurde, bringt jedenfalls nichts, da das Update ja komplett über Deine Proxy-Klasse durchgeführt wird...

Grüße,
der Michael

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

Derzeit funktioniert der Proxy nur wenn du direkt bei den AppDater-Einstellungen den Proxyport und ggf. Username und Password angibst. Die die pac-Datei bzw. die IE-Einstellungen werden noch nicht übernommen.

Ich bin aber derzeit dabei genau dass umzusetzen. Es würde dann ein Flage "UseIESettings" oder ähnlich geben und dein Problem sollte sich damit erledigen.

115 Beiträge seit 2008
vor 14 Jahren

Derzeit funktioniert der Proxy nur wenn du direkt bei den AppDater-Einstellungen den Proxyport und ggf. Username und Password angibst.

Genau das hatte ich versucht, aber aus dem Firmennetz ist ein Update dann trotz korrektem Usernamen und Passwort nicht möglich...

Grüße,
der Michael

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

Kannst du mir da eventuell die Logdatei dazu schicken die während dem Update erzeugt wurde? Weiter oben ist beschrieben wie man die Erzeugen lässt. Dann einfach an webmaster@klausmoster.de.

B
76 Beiträge seit 2007
vor 14 Jahren

Erstmal wollte ich sagen, dass das eine großartige Erweiterung für jede Anwendung ist. Hab auch noch zwei kleine Fehler entdeckt. Wie auf dem Bild zu sehen, hab ich mit meinem Breitbild-Notebook-Monitor ein kleines Problem. Etwas ähnliches hab ich hier schon aber an anderer Stelle gelesen.
[Edit] Hab jetzt mal weitere Dialoge getestet. Bspw. "Über AppDater". Meist sind bei mir die Buttons wie "OK" fast nicht zu sehen. Mit ein wenig Glück treff ich die nur.

Außerdem tritt eine Ausnahme auf, wenn man aus versehen direkt auf "Übernehmen" klickt.

Das sind jetzt nur Kleinigkeiten, aber ich wollts nur mal kurz gesagt haben.

Dann wollte ich fragen wann das Codebeispiel im Wiki von K_Updater auf AppUpdater umgestellt wird.

"Fehler sind das Tor zu neuen Entdeckungen"

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

Erst einmal Danke fürs Lob 😃

Ich schätze du hast die dpi-Zahl verändert oder? Bzw. Schriftgröße auf "groß" geändert.

J
1.114 Beiträge seit 2007
vor 14 Jahren

Du hast den Beitrag hier sicherlich übersehen. Gibts dazu schon was zu sagen?

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 14 Jahren
AppDater 1.0.0 Beta 1 Build 9091

Ah stimmt - sorry - das ist total untergegangen.
Also der Updatevorgang wird nicht einfach abgebrochen sondern Rückgängig gemacht - sprich: ersetzte Dateien werden wieder zurückgeschrieben (dafür wird vorher ein Backup aller Dateien angelegt).

Die Möglichkeit den Updateprozess abzubrechen bzw. das Abbrechen zu unterbinden werde ich für den nächsten Build als Property einbauen - danke für die Erinnerung.

Zudem möchte ich noch ein weiteres Property bzw. eine weitere Einstellmöglichkeit hinzufügen dass die Impersonifikation betrifft. Und zwar würde diese Einstellung erlauben einzustellen dass nicht nur im Fehlerfall versucht wird das Konto zu wechseln sondern immer gewechselt wird und das Update komplett unter dem angegebenen Benutzer durchgeführt wird.

P.S.: Seit gestern habe ich einen neuen Build draußen - einfach mal AutoUpdate anwerfen oder herunterladen.

Änderungen: klick
Download: klick

Im ersten Beitrag werde ich nun immer die aktuelle Version + die wichtigsten Links angeben.

D
55 Beiträge seit 2008
vor 14 Jahren

Gaebe es vlt die Moeglichkeit bei der Statistik Customparameter mitzugeben?
Zb _von _welcher Version _auf _welche geappdated wurde?

Btw, klasse Arbeit, sind hier brav am testen und auch meine Kollegen sind bereits total ueberzeugt vom AppDater 😃

Languages: C#, C, C++, Java, VB, PHP, ASP, HTML/XHTML, XML, CSS, JavaScript.
learning since: 1996
IDE's: Visual Studio 2008 Team Editon, Eclipse, Sharpdevelop / Monodevelop

115 Beiträge seit 2008
vor 14 Jahren

Hallo EvilMM,

ich hab mir die neue Version des AppDaters mal bezüglich der Proxy-Einstellungen die vom IE übernommern werden sollen angesehen, aber nichts gefunden.

Hab ich da was übersehen oder funktioniert das komplett intern?

Grüße,
der Michael

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

@DeadEye: merci 😃 Die Statistik will ich um genau den Punkt sowieso erweitern. Customparameter sind eine gute Idee, werde mir da mal überlegen.

@Lumbra: Ich seh gerade dass da wohl das beim Obfuscating schief gelaufen ist. Normal sollte es bei "DataTypes.ProxyType" neben "Http" und "NoProxy" noch den Punkt "UseInternetExplorerSettings" geben. Leider wurde der jetzt beim Obfuscating in "a" umbenannt 😃

Sollte aber dennoch möglich sein das auszuwählen. Was nun passiert ist das dann ganz einfach nach den Einstellungen gesucht werden die im Internet Explorer (und somit im System) eingestellt sind. Das betrifft in diesem Build aber nur Proxyadresse und Port. Die automatische Verwendung einer eventuell angegebenen PAC-Datei wird im nächsten Build verfügbar sein. Leider kann ich gerade die Proxygeschichte nur sehr eingeschränkt testen und wäre dann sehr auf euer Feedback angewiesen 😃

115 Beiträge seit 2008
vor 14 Jahren

Hallo EvilMM,

gut zu wissen... Was die Proxy-Geschichte angeht. Testen wäre kein Problem - aus dem Netz meiner Firma kann ich das gerne mal machen (PAC-Datei beim Proxy...)

Grüße,
der Michael

B
76 Beiträge seit 2007
vor 14 Jahren

Erst einmal Danke fürs Lob 😃

Ich schätze du hast die dpi-Zahl verändert oder? Bzw. Schriftgröße auf "groß" geändert.

Tut mir leid, dass ich so lange gebraucht habe. Hatte ne Menge um die Ohren. Die Schriftgröße hab ich nicht geändert. Schriftgrad: "Normal" steht bei mir. Meine Auflösung ist 1920x1200 Pixel.

P.S. Hab gerade vom AppDater ein Update gefahren. Bei vielen Dialogen hab ich nicht alles gesehen. Als Beispiel häng ich mal den letzten Dialog an.

"Fehler sind das Tor zu neuen Entdeckungen"

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

OK - aber dann stellt dein Skin den du ausgewählt hast irgendwas um - die Auflösung müsste egal sein. Werde aber mal schauen dass ich das - zumindest mal für ein paar Fenster - in den Griff bekomme. Ist immer ein wenig verzwickt wo dann welche Anker gesetzt werden müssen damit das dann passt.

Welchen Skin hast du drauf? Dann kann ich das vllt in einer VM nachstellen.

2.760 Beiträge seit 2006
vor 14 Jahren

Das schaut mir ganz nach dem Royale theme aus.

115 Beiträge seit 2008
vor 14 Jahren

Also bei mir ist das auch abgeschnitten. Und ich verwende kein Theme und habe auch in Vista nichts in der Darstellung verändert...

Grüße,
der Michael

76 Beiträge seit 2007
vor 14 Jahren

Hallo,

was mir noch aufgefallen ist:
Du erzeugst direkt im Ordner "Roaming" eine Datei "AppDater.lic", ich persönlich würde es schöner finden wenn du die Datei auch mit in den Ordner preBeta packst (der ja eh schon da ist).

Wie gesagt nur meine Meinung dazu 😉

Gruß

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

@Lumbra: Ja der Text hängt überall rechts raus, darum gehts aber nicht - er meint die Buttons die überall raushängen.
@Zony: Ja das ist unschön - das korrigiere ich dann.

76 Beiträge seit 2007
vor 14 Jahren

Hi,

was mir grade noch aufgefallen ist. Man kann im Changelog Textfenster nicht Return drücken. Dann will er den Dialog schließen.

Gruß

J
1.114 Beiträge seit 2007
vor 14 Jahren

Also erst einmal freut es mich zu hören, dass du die Property "AllowCancellation" einbauen wirst, damit der Anwender den update Prozess nicht abbrechen kann.

Unter Verdacht, dass ich vielleicht immer wieder die gleichen Themen ausgrabe: Zum Thema "Impersonifikation" ist mir aber, wie es scheint, ein gravierender Bug aufgefallen. Zum Scenario:
Ich habe in einem Ordner die Schreibrechte für den User geknippst, so dass beim Versuch, durchs Updaten in den Ordner zu schreiben, schön brav wie gewollt eine Fehlermeldung kommt, bei der ich dann auswähle, das Update unter einem anderem Benutzer auszuführen. Dort gebe ich dann die korrekten Daten an, und der Benutzer wird auch korrekt impersonifiziert. Es handelt sich dabei um einen Benutzer aus einer Domäne.. Beim Updatevorgang passiert dann aber folgendes:

  1. Es werden alle zu updatenden Dateien erstmal glöscht (die Rechte des Users stimmen also).
  2. Danach bricht das Ganze ab, d.h. die neuen Dateien werden nicht geschrieben.

Das hat zur Folge, dass die Exe im Verzeichnis nicht mal mehr existiert. Irgendwelche Backupfiles gibt es auch nicht. Ein weiterer Updateversuch kann nicht mehr ausgeführt werden, da die Echse nicht mehr existiert.

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

@Zony: Ab dem nächsten Build wird die Datei im Ordner preBeta/AppDater erzeugt. Von welchem Changelog-Fenster genau sprichst du?

@Jelly: Das Property ist umgesetzt und kommt in den nächsten Build - denke heute Abend. Werde mir dann die Geschichte mit dem Benutzerwechsel nochmal genauer ansehen. Normaler sollten alle Dateien die gelöscht werden auch gesichert werden, dass geschieht allerdings in einem Temp-Ordner - vllt läuft da aber auch etwas schief. Den Rollback-Mechanismus muss ich sowieso nochmal überarbeiten.

J
1.114 Beiträge seit 2007
vor 14 Jahren

dass geschieht allerdings in einem Temp-Ordner - vllt läuft da aber auch etwas schief.

In welchem denn, dann kann ich das überprüfen!

76 Beiträge seit 2007
vor 14 Jahren

Hier mal ein Screenshot von dem was ich meine:

J
1.114 Beiträge seit 2007
vor 14 Jahren

dass geschieht allerdings in einem Temp-Ordner - vllt läuft da aber auch etwas schief.
In welchem denn, dann kann ich das überprüfen!

Also wenn ich das richtig sehe, legst du die temporären Dateien hier ab:

C:\Documents and Settings\Tom\Local Settings\Temp\appdater\20090925_085153506

Wenn du jetzt deinen Benutzer impersonifizierst (z.B. auf den Benutzer Admin), kann es dann sein, dass versucht wird ins Temp Verzeichnis vom Benutzer Admin zu schreiben. Das schlägt dann aber definitiv fehl, wenn der Benutzer Admin sich noch nie auf dem System eingeloggt hat, da dann nämlich noch sein Benutzerprofil fehlt, und somit auch sein Temp Ordner an sich. Imho machst du da also was falsch, überhaupt diesen Ordner als Puffer heranzuziehen.

Noch eine Bemerkung zu dem ganzen Logging... Ich starte die Updateprüfung jeweils direkt nach dem Start des Programms. Dein ausgeprägtes Logging sorgt dann bei mir dafür, dass zumindest im %Temp%\AppDater Ordner ein neuer Unterordner mit dem aktuellen Datum erstellt wird (z.B. 20090925_085908266), in der dann zumindest die updates.xml Datei landet. Das passiert auch, wenn überhaupt kein Update erfolgt weil der Client schon die aktuellste Version hat. Unschön an dem Ganzen ist einfach, dass nach jedem Programmstart immer wieder ein neuer Ordner angelegt wird, und so kommt es dass ich jetzt alleine schon durch mein Testen 180 Ordner dort liegen habe. Un weil ich so ausgiebig getestet habe, habe ich natürlich auch einie Updates erwzungen, und alle diese Updatedaten legst du dann auch unwiderruflich in diesem Temp Ordner ab, und das sowohl als Original Zip Datei, die Backup Dateien und die entpackten Dateien aus dem Zip Archiv. Dadurch ist mein %Temp%\AppDater Ordner mittlerweilen auf 600MB angeschwollen. Völliger Verschwendung würd ich meinen. Wenn ich mir vorstelle, dass ich eine Anwendung hier im Haus auf 400 PCs laufen habe, die über 2 Jahre hinweg jeden Tag (sogar wenn auch nur ein einziges mal) auf jedem PC gestartet wird, dann legt der AppDater insgesamt 4002365 Ordner an. Das sind fast 150.000 Ordner, die wir schön fleissig jeden Tag zentral backupen.

Ich denke, deine Logging Sache sollte nochmals gründlich überdacht werden, gerade auch in Bezug auf das Impersonifikationsproblem.

Nimm meine Kritik bitte nicht persönlich. Ich liebe das Projekt nach wie vor. Nur sollten diese Dinge unbedingt behoben werden bevor damit produktiv gearbeitet werden kann. Das wollte ich hier klarstellen mit meinem Post, nicht dass plötzlich irgendwelche Benutzer böse Erfahrungen mit AppDater machen müssen.

J
1.114 Beiträge seit 2007
vor 14 Jahren

dass geschieht allerdings in einem Temp-Ordner - vllt läuft da aber auch etwas schief.
In welchem denn, dann kann ich das überprüfen!

Also wenn ich das richtig sehe, legst du die temporären Dateien hier ab:

C:\Documents and Settings\Tom\Local Settings\Temp\appdater\20090925_085153506

Wenn du jetzt deinen Benutzer impersonifizierst (z.B. auf den Benutzer Admin), kann es dann sein, dass versucht wird ins Temp Verzeichnis vom Benutzer Admin zu schreiben. Das schlägt dann aber definitiv fehl, wenn der Benutzer Admin sich noch nie auf dem System eingeloggt hat, da dann nämlich noch sein Benutzerprofil fehlt, und somit auch sein Temp Ordner an sich. Imho machst du da also was falsch, überhaupt diesen Ordner als Puffer heranzuziehen.

Noch eine Bemerkung zu dem ganzen Logging... Ich starte die Updateprüfung jeweils direkt nach dem Start des Programms. Dein ausgeprägtes Logging sorgt dann bei mir dafür, dass zumindest im %Temp%\AppDater Ordner ein neuer Unterordner mit dem aktuellen Datum erstellt wird (z.B. 20090925_085908266), in der dann zumindest die updates.xml Datei landet. Das passiert auch, wenn überhaupt kein Update erfolgt weil der Client schon die aktuellste Version hat. Unschön an dem Ganzen ist einfach, dass nach jedem Programmstart immer wieder ein neuer Ordner angelegt wird, und so kommt es dass ich jetzt alleine schon durch mein Testen 180 Ordner dort liegen habe. Un weil ich so ausgiebig getestet habe, habe ich natürlich auch einie Updates erwzungen, und alle diese Updatedaten legst du dann auch unwiderruflich in diesem Temp Ordner ab, und das sowohl als Original Zip Datei, die Backup Dateien und die entpackten Dateien aus dem Zip Archiv. Dadurch ist mein %Temp%\AppDater Ordner mittlerweilen auf 600MB angeschwollen. Völliger Verschwendung würd ich meinen. Wenn ich mir vorstelle, dass ich eine Anwendung hier im Haus auf 400 PCs laufen habe, die über 2 Jahre hinweg jeden Tag (sogar wenn auch nur ein einziges mal) auf jedem PC gestartet wird, dann legt der AppDater insgesamt 4002365 Ordner an. Das sind fast 150.000 Ordner, die wir schön fleissig jeden Tag zentral backupen.

Ich denke, deine Logging Sache sollte nochmals gründlich überdacht werden, gerade auch in Bezug auf das Impersonifikationsproblem.

Nimm meine Kritik bitte nicht persönlich. Ich liebe das Projekt nach wie vor. Nur sollten diese Dinge unbedingt behoben werden bevor damit produktiv gearbeitet werden kann. Das wollte ich hier klarstellen mit meinem Post, nicht dass plötzlich irgendwelche Benutzer böse Erfahrungen mit AppDater machen müssen.

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

Für jeden Updatevorgang wird tatsächlich ein neuer Temp-Ordner angelegt.
Es steht zwar schon länger auf meiner Roadmap die Beschreibbarkeit zu prüfen - wurde aber nie wirklich akut wichtig. Jetzt wäre ein guter Anlass dass alles nochmals zu überdenken. Im Grunde lasse ich mir jede Temp-Datei vom System selbst anfordern Path.GetTemp (oder so ähnlich). Aber an dieser Stelle läuft das noch ziemlich altertümlich und händisch ab - werde ich mir direkt anschauen.

Zur Impersonifikation habe ich gestern Abend noch eine Einstellmöglichkeit ergänzt die es ermöglicht ein Update schon von vornherein unter dem gewünschten Benutzer durchzuführen - das aber nur nebenbei.

Deine Kritik nehme ich ganz und gar nicht persönlich sondern als das was es ist: Konstruktive Kritik. Da du selbst in dieser Branche tätig bist weißt du selbst vermutlich nur zu gut dass es Szenarien gibt an die man gar nicht denkt - somit bin ich unheimlich auf konstruktives Feedback angewiesen - an dieser Stelle also ein Dankeschön dafür 😃

Für mich würde das also bedeuten auch diese Tempordner vom System anfordern zu lassen - ggf. werde ich auch die Pfade ändern und es so machen wie es Microsoft selbst macht: C:$blabla verwenden und anschließend wieder sauber weglöschen - da recherchiere ich mal ein wenig was der Königsweg ist und ob Microsoft was im Styleguide zu solchen Problemen stehen hat.

Ich lese mich zudem auch gerade ins ShadowCopying ein um echtes Updaten im Hintergrund zu ermöglichen. Ich denke das wäre ein durchaus interessantes Feature wenn das System bzw. die Applikation im Betrieb geupdated werden können und beim nächsten Rechnerstart dann die neuen Versionen zur Verfügung stehen.

76 Beiträge seit 2007
vor 14 Jahren

Hallo,

ich dachte mir zur abwechslung schreib ich noch mal was 😄

Ich hab aktuell folgendes Problem:
Meine Anwendung hat die Version 1.1.0.0 und das einzige im AppDater eingetragene Update trägt auch die Version 1.1.0.0. Allerdings wird mir jedes mal ein Update gemeldet.

Eventuell kannst du dir das ja mal ansehen wenn du Zeit hast. Vielleicht sitzt der Fehler ja auch hier vor dem Bildschirm 😉 Ich hab das Update Log usw. hier. Könnte ich dir per Mail zukommen lassen.

Gruß

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

Schick mir sowas ruhig zu: webmaster@klausmoster.de

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

@Jelly: Habe nun das ganze WE mit Überlegungen und Recherchen verbracht und denke eine geeignete Lösung gefunden zu haben die ich auch schon weitestgehend umgesetzt habe.

Das AppDater-Objekt hat nun ein neues Flag "TempDirLocation" dessen 3 mögliche Werte die folgenden sind:

  1. LoggedOnUserTemp: Das Temp-Verzeichnis des angemeldeten Benutzers wird zum Download der Dateien verwendet (Vorgehensweise wie bisher, diese Einstellung wird auch Standard sein)
  2. DriveC: Ein Verzeichnis der Form C:$_936DA01F-9ABD-4d9d-80C7-02AF85C822A8 wird verwendet. Dabei ist dann sichergestellt dass beim Ausführen eines Updates unter einem anderen Benutzer auch tatsächlich ins Temp-Verzeichnis geschrieben werden kann
  3. UserSpecified: Verwende ein benutzerdefiniertes Verzeichnis

Das Problem dass du beschrieben hast, dass der Benutzer unter dem das Update durchgeführt werden kann nicht ins Verzeichnis des Benutzers schreiben kann der das Update veranlasst hat konnte ich nachstellen und durch Variante "DriveC" lösen.
An dieser Stelle wäre auch denkbar sich direkt in der DLL noch vor dem Aufruf der updater.exe per Impersonation am Konto des Benutzers anzumelden der das Update durchführen soll und in dessen Temp-Ordner zu schreiben. Eventuell füge ich diese Funktion dann später noch hinzu.

Auch habe ich nun die Einstellmöglichkeiten unter "Rechte" geändert. Bisher war es ja nur möglich entweder Adminrechte zu fordern oder ein anderes Benutzerkonto zu verwenden. Allerdings ist das ja quatsch. Denn das eine schließt das andere ja nicht aus. Somit stehen nun 4 Szenarien zur Verfügung unter denen ein Update durchgeführt wird

  1. Angemeldeter Benutzer, keine Adminrechte
  2. Angemeldeter Benutzer, Adminrechte
  3. Anderes Benutzerkonto, keine Adminrechte
  4. Anderes Benutzerkonto, Adminrechte

Die ersten Tests liefen eben erfolgreich. Nun schreibe ich noch die Routine die die Tempordner auch wieder löscht und dann gibts den nächsten Build.

Ein Szenario bereitet noch Probleme bei benötigten Adminrechten: Sollte ein Update unter dem angemeldeten Benutzer durchgeführt werden und auf Fehler auflaufen und will man dann während dem Update "händisch" das Benutzerkonto wechseln, so können noch keine Adminrechte angefordert werden.

@Zony: Deine Datei habe ich erhalten - vielen Dank. Jedoch kam ich heute noch nicht dazu das Problem zu lösen. Tatsächich erkennt die Routine die beiden identischen Versionsnummern und wählt dann dennoch das Update aus - also hat sih da irgendwo ein Fehler eingeschlichen.

Update: Habe gestern noch ne Weile dran gesessen und das Löschen der Temp-Dateien korrigiert. Nach einem Update werden sämtliche temporäre die angelegt wurden wieder gelöscht. Ein weiteres neues Flag "DeleteTempFilesAfterUpdate" dass standardmäßig auf "true" steht ermöglicht zu Debugzwecken das Löschen zu deaktiveren.

J
1.114 Beiträge seit 2007
vor 14 Jahren

Also erstmal Klasse dass du dir die Zeit genommen hast, um das Gesagt umzusetzen.

  1. UserSpecified: Verwende ein benutzerdefiniertes Verzeichnis

Da spricht ja dann auch nix dagegen, ein Netzpfad als temporäres Verzeichnis zu verwenden, oder? Denn erneut ist es schwer generell für jeden PC ein Verzeichnis zu nennen, in das jeder Benutzer schreiben kann. Das ist PC spezifisch, und somit schwer handlebar. In einer AD Umgebung jedoch kann ich mir temporäre Verzeichnisse selbst definieren, und da gibt es keine Probleme mehr mit Schreibrechten.

Frage noch hierzu: Wenn ich ein Tempverzeichnis à la _\server$936DA01F-9ABD-4d9d-80C7-02AF85C822A8 angebe (die Guid würde ich selbst erstellen wollen), wird nach dem Update diese Verzeichnis wieder gelöscht oder nicht? Wenn nicht, dann sammelt sich im Laufe der Zeit dort eine Menge an.

An dieser Stelle wäre auch denkbar sich direkt in der DLL noch vor dem Aufruf der updater.exe per Impersonation am Konto des Benutzers anzumelden der das Update durchführen soll und in dessen Temp-Ordner zu schreiben. Eventuell füge ich diese Funktion dann später noch hinzu.

Das wird meines Erachten schief gehen. Wenn sich der impersonifizierte Benutzer noch nie an dem Rechner eingeloggt hat, so steht ihm auch kein Profil unter c:\Dokumente und Einstellungen\ImpUser zur Verfügung, und er besitzt somit auch kein eigenes Temp Verzeichnis. Diese Option würde ich komplett ausser Acht lassen und gar nicht erst anbieten.

Auch habe ich nun die Einstellmöglichkeiten unter "Rechte" geändert. Bisher war es ja nur möglich entweder Adminrechte zu fordern oder ein anderes Benutzerkonto zu verwenden. Allerdings ist das ja quatsch. Denn das eine schließt das andere ja nicht aus. Somit stehen nun 4 Szenarien zur Verfügung unter denen ein Update durchgeführt wird

  1. Angemeldeter Benutzer, keine Adminrechte
  2. Angemeldeter Benutzer, Adminrechte
  3. Anderes Benutzerkonto, keine Adminrechte
  4. Anderes Benutzerkonto, Adminrechte

Das ist Klasse, wenn man ein Adminkonto erzwingen kann, und das in jedem Fall und nicht nur wenn was schief läuft wegen mangelnder Rechte.

Ich würde versuchen, die Einstellmöglichkeiten nicht durch zuviele Optionen zu erschlagen. Ich würds so sehen, dass eigentlich ein Flag Admin ja/nein reicht, und wenn ja, dann können noch die Authentifizierungsdaten eines Admins angegeben werden, oder leer gelassen werden, dann eben beim Update nachfragen. Aber das ist nur meine bescheidene Meinung als Anwender 😃

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

Gegen einen Netzwerkpfad würde nichts sprechen, werde das aber erst testen müssen.

Ja die Problematik mit dem fehlenden Benutzerkonto hattest du angesprochen. Ich denke mit den drei Möglichkeiten die ich dann biete sollte sich jedes Problem lösen lassen und somit auch genug sein.

Die Logik beim Löschen ist folgende:
Es werden alle Dateien gelöscht die beim Updatevorgang angelegt wurden. Ist nach dem Löschen der Ordner leer (was normalerweise der Fall ist), wird der komplette Ordner gelöscht - aber auch nur dann. Damit wirke ich einer eventuellen Fehleinstellung entgegen. Man nehme mal an der Entwickler gibt als Benutzer-Temp-Pfad ausversehen C:\Windows an oder einen Ordner in dem sich noch wichtige andere Dateien befinden. Dann würde der Ordner bestehen bleiben.

Läuft jedoch alles Reibungslos wird der Ordner wieder komplett gelöscht.

Ein Problem sehe ich allerdings dann wenn du bei 400PCs immer den Ordner \server$_936DA01F-9ABD-4d9d-80C7-02AF85C822A8 verwendest. Würden nun zwei PCs gleichzeitig ein Update durchführen würde ja vllt der eine Prozess dem anderen die Ordner weglöschen. Vllt könnte man hierbei überlegen ob das Temp-Verzeichnis als Wunsch nur als übergeordneter Ordner angesehen wird und darin dann das eigentliche Temp-Verzeichnis angelegt wird dass dann wieder gelöscht werden kann. Somit würde der Ordner zwar immer bestehen bleiben, wäre aber im Idealfall immer leer. Allerdings wäre das schon wieder eine Einstellung.

J
1.114 Beiträge seit 2007
vor 14 Jahren

Die Logik beim Löschen ist folgende:
Es werden alle Dateien gelöscht die beim Updatevorgang angelegt wurden. Ist nach dem Löschen der Ordner leer (was normalerweise der Fall ist), wird der komplette Ordner gelöscht - aber auch nur dann.

Das ist gut 😉

Ein Problem sehe ich allerdings dann wenn du bei 400PCs immer den Ordner \server$_936DA01F-9ABD-4d9d-80C7-02AF85C822A8 verwendest. Würden nun zwei PCs gleichzeitig ein Update durchführen würde ja vllt der eine Prozess dem anderen die Ordner weglöschen.

Ich hab da vielleicht was falsch verstanden, aber ich gehe davon aus, dass ICH in der AppDater Klasse diesen Pfad selbst mit übergebe. Wenn dem so ist, würde ich natürlich somit für jeden Client seinen eigene guid-Pfad verpassen. Gearbeitet wird dann also nur in dem Pfad.
Oder dachtest du an die Möglichkeit, diesen Pfad in deiner AppDate Gui irgendwo fest anzugeben. Dann hast du natürlich Recht und ein Update könnte kritisch werden.

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

Also den Pfad gibst du nicht in der Gui sondern schon in der Applikation selbst an - so wie du es richtig verstanden hast.

Ich dachte jetzt nur gerade dass der Temp-Pfad dann ja eventuell immer identisch ist. Wenn du jedoch immer eine neue Guid erzeugst ist dieser Pfad bei jedem Updatevorgang unterschiedlich und macht dann auch keine Probleme.

F
258 Beiträge seit 2008
vor 14 Jahren

Hallo,

ich weiß nicht ob der AppDater das schon kann, aber ich habe mir grade überlegt, dass es echt sinnvoll wäre, wenn er sich die Updates in irgendeiner Weise aus einem SVN-Verzeichnis ziehen könnte. Dann würde nämlich das lästige bereistellen von ftp-Platz für die Updates entfallen. Bzw. das Programm an sich könnte vielleicht im SVN nachsehen obs es aktuellere Versionen gibt.

Fabi

J
1.114 Beiträge seit 2007
vor 14 Jahren

Ich kann zwar nicht für den Programmierer sprechen, aber SVN ist ein Quellcode Versionierungstool, und eigentlich dazu gedacht, komplette Updates einer Software darüber laufen zu lassen. Ausserdem braucht es dazu einen SVN Client, der auch nicht unbedingt als "vorausgesetzt" gesehen werden kann.

S
24 Beiträge seit 2007
vor 14 Jahren

Wie sieht denn der aktuelle Stand aus?

Anfang April meintest es lohnt sich zu warten. Mittlerweilen bin ich aber seit gut einem Monat mit meiner Version raus. Die derzeitige Version vom K_Updater funktioniert zwar einwandfrei aber die neue hätte doch ein paar nette Features mit drin 😉

Ebenso wäre es allein wegen der Statistik lohnenswert ein Update zu bringen.

Nicht das ich nerven will aber mit diesen Zeitfenstern wirst mit einer kommerziellen Version keinen Boden unter die Füsse bekommen 😦 und das Potenzial hätte der AppDater allemal.

Muss hier mal nachfragen da ich denke das ich nicht der einzige bin der heiß auf die neue Version ist 😉

76 Beiträge seit 2007
vor 14 Jahren

Hi Sun,

ich weiß nicht ob du schon mal den Rest des Threads gelesen hast. Aber die "neue" Version ist schon lange da 😉

S
24 Beiträge seit 2007
vor 14 Jahren

Dir ist aber auch klar das es sich um eine Beta handelt die produktiv nicht eingesetzt werden sollte? Außerdem hat sie ja nun definitiv noch ein paar bereits bekannte Fehler.

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

Ich möchte euch nur mal darüber informieren dass ich den AppDater nun endgültig einstellen werde.

Ich dachte ich würde die Motivation das Projekt weiterzuführen nochmals aufleben lassen - und kurzfristig ist das auch geglückt. Die Tatsache wieviel Zeit dieses Projekt schluckt macht es mir jedoch schlicht und ergreifend unmöglich weiterzuarbeiten.

Erschwerend kommt die Tatsache hinzu dass ich kein Interesse mehr daran habe täglich meine Zeit mit einem Projekt zu verbringen das mir selbst nichts mehr bringt (sei es "Erfahrung" oder einfach nur eine gewisse Anerkennung in Form einer kleinen Spende oder dergleichen die schon lange nicht mehr kam und überhaupt nur 2-3 Mal stattgefunden hat).

Ich werde meine Freizeit in Zukunft Projekten widmen die mir Spaß machen und von denen ich selbst auch noch einen Nutzen habe.

Grundsätzlich tut es mir selbst Leid da ich sehr stolz auf das Projekt bin. Wirklich motivieren konnten mich "Beschwerde E-Mails" wieso dies und das denn nicht funktionieren würde und "Anforderungs E-Mails" mit O-Ton: "Ich hätte da noch eine Aufgabe für dich" überhaupt nicht - ich denke das können einige hier verstehen. Immerhin bin ich nicht der Auftragsprogrammierer der für kein Geld alles macht...

Es gibt ja wie ich gesehen habe im Forum mittlerweile ein zweites Updateprojekt. Ich bin gespannt wie lange der Entwickler Motivation aufbringen kann den Benutzern die Wünsche von den Lippen abzulesen nur dass diese dann die Software kostenlos in den Firmen einsetzen können. Sprich: Die Benutzer verdienen Geld - der Entwickler keins. Verdrehte Welt...

Denen die diese Software noch weiter verwenden wünsche ich dass alles glatt läuft.

799 Beiträge seit 2007
vor 14 Jahren

Lässt du das Projekt komplett sterben oder darf man den Code jetzt auch abändern?

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
1.564 Beiträge seit 2007
vor 14 Jahren

Hallo EvilMM

Ich muss gestehen ich habe mir dein Programm jetzt nicht angeschaut, weil derzeit kein Bedarf, aber...

... und "Anforderungs E-Mails" mit O-Ton: "Ich hätte da noch eine Aufgabe für dich" überhaupt nicht - ich denke das können einige hier verstehen. Immerhin bin ich nicht der Auftragsprogrammierer der für kein Geld alles macht...

Wenn jemand eine Anforderung hat kannst du doch den Aufwand schätzen und ein auf Stundensatz basierendes Angebot machen. 😉

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

420 Beiträge seit 2007
vor 14 Jahren

Hallo EvilMM,

ich kann deine Entscheidung gut verstehen. So ein Projekt zieht viel, viel Arbeit mit sich. Du kannst/musst keinen Support leisten.

Was machst du jetzt genau mit dem Projekt? Gibst du es an einen anderen Entwickler weiter oder stellst du es vielleicht OpenSource? Ich wäre schade die ganze Energie, die du fast 2 Jahre lang in das Projekt gesteckt hast, einfach "verpuffen" würde und mehr oder weniger umsonst gewesen wäre.

Grüße Dennis

J
1.114 Beiträge seit 2007
vor 14 Jahren

Denen die diese Software noch weiter verwenden wünsche ich dass alles glatt läuft.

Ich nutze diese Software intensivst, und habe auch keine Probleme damit. Es sind lediglich ein paar Punkte die nocht nicht implementiert sind.

Ich finde es schade, dass du die Zeit nicht mehr findest, das Dingen weiterzuentwickeln, kanns aber sehr gut nachvollziehen, da es mir bei zumindest einem Projekt auch so gegangen ist: Rema.

Von meinem Rema weiss ich, dass es noch weiter genutzt wird, auch wenn ich keine Updates mehr rausbringe. Ich denke, bei deinem AppDater wird es nicht anders sein. Das belibt dann sicherlich trotzdem eine positive Bestätigung für deine Arbeit.

B
76 Beiträge seit 2007
vor 14 Jahren

Lässt du das Projekt komplett sterben oder darf man den Code jetzt auch abändern?

Wie in schon in einem anderen Beitrag geschrieben, fand ich dein Projekt auch immer schon klasse. Deine Beweggründe kann ich ebenfalls nachvollziehen.
Trotzdem fände ich es sehr schade, wenn das Projekt einfach so sterben würde. Daher würd ich mich gern der Frage anschließen, ob du den Code jetzt freigibst. Ich selber würd mich gern dem Darstellungsproblem auf meinem Notebook annehmen. Vielleicht krieg ich da was hin.

Trotzalledem vielen Dank für die geleistete Arbeit und ich hoffe du gibst den Quellcode frei.

"Fehler sind das Tor zu neuen Entdeckungen"

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

Zunächst erst einmal vielen Dank an alle die das Projekt toll fanden - wenngleich es immernoch traurig finde dass ein Projekt dass man rege genutzt und "gemocht" wird so wenig unterstützt wird. Aber das ist ja ein anders Thema.

Zum Thema Quellcode freigeben:

  1. Leider kollidiert das mit meiner Abneigung gegen OpenSource 😃 Ich weiß nicht ob ihr das nachvollziehen könnt - ich habe das Projekt unter anderem wegen dieser "Im Internet ist alles kostenlos"-Mentalität eingestellt. Es ist niemand mehr bereit für Arbeit Geld auszugeben und das habe ich anhand diesen Projekt sehr deutlich zu spüren bekommen. Gebe ich nun noch die Sourcen frei so kommt es mir noch viel mehr wie ein "verschenken" meiner Arbeit vor. Aber das ist nur meine persönliche Haltung zu diesem Thema, dass ich eine Abneigung habe diese Jahrelange Arbeit einfach zu verschenken. Ich dachte dass diese Leistung die ich erbracht habe irgendwem wenigstens 5€ wert gewesen wären so dass ich mir für das Opfern meiner Freizeit mal Abends ein Bier leisten kann - war es aber nicht, also sehe ich auch nicht wirklich ein weshalb ich es dann gleich verschenken sollte. Ich habe das Programm hauptsächlich während meiner Ausbildungszeit entwickelt und gerade da hat mir vorn und hinten das Geld gefehlt. Ich habe wirklich gedacht durch solch einen Einsatz etwas schaffen kann dass mir hier und da einen Obulus einbringt - manch einer nutzt es ja sogar innerhalb von Firmen und verdient indirekt damit Geld). Immerhin habe ich für das Projekt mein USBSynC geopfert und hatte selbst überhaupt keinen Nutzen vom AppDater - maximal um den AppDater selbst durch dich Komponenten zu aktualisieren. Offenbar war ich doch etwas zu naiv 😃

  2. Auch wenn ich die Sourcen freigeben wollte - so ginge das gar nicht. Wie ich schon mehrere Male auf die Anfragen nach OpenSource geschrieben habe, nutze ich diverse kommerzielle Komponenten. Unter anderem edtFTPnet/PRO und SmartInspect. Ihr könnte ja mal danach googeln und euch anschauen was die Teile kosten. Um nun den AppDater OpenSource zu machen, müssten auch diese Komponenten ersetzt werden. Und das Program wird ohne FTP-Anbindung nicht wirklich funktionieren 😃

Na ja nun - so siehts derzeit leider aus.

T
415 Beiträge seit 2007
vor 14 Jahren

Andere Möglichkeit: Verkaufe den Sourcecode doch an Interessierte.

J
1.114 Beiträge seit 2007
vor 14 Jahren

Es ist niemand mehr bereit für Arbeit Geld auszugeben und das habe ich anhand diesen Projekt sehr deutlich zu spüren bekommen. Gebe ich nun noch die Sourcen frei so kommt es mir noch viel mehr wie ein "verschenken" meiner Arbeit vor. Aber das ist nur meine persönliche Haltung zu diesem Thema, dass ich eine Abneigung habe diese Jahrelange Arbeit einfach zu verschenken. Ich dachte dass diese Leistung die ich erbracht habe irgendwem wenigstens 5€ wert gewesen wären so dass ich mir für das Opfern meiner Freizeit mal Abends ein Bier leisten kann

Das kann ich so nicht auf mir sitzen lassen, sorry.

Ich mag es vielleicht in einem der unzähligen Einträgen in diesem Thread übersehen haben, aber mir ist jedenfalls nicht bewusst aufgefallen, dass du in irgendeiner Form jemals nach einer finanziellen Entschädigung gefragt hättest. Und paschal zu behaupten, dass die Leute kein Geld mehr für Lizenzen ausgeben, stimmt sicherlich auch nicht. Aber wenn du etwas für frei rausgibst, und darüber hinaus indirekt hier im Forum verlangst, die Mitglieder sollten bitte die Software auf Herz und Nieren testen, damit sie nachher den Ansprüchen auch gerecht wird, dann finde ich es imho schon fast dreist, diesen Leuten, die ja schliesslich auch Zeit investiert haben, zu sagen, du würdest das Projekt einstellen, weil keiner dir was für deine Arbeit zahlt. Ich kann nur von mir reden, und von mir hast du zumindest mal die Idee der Impersonifizierung, und den Quellcode (also nicht bloss die DLL) hast du von mir auch gerkriegt und ja auch in die letzte Version mit eingebracht.

Ich hatte damit kein Problem, da es dem Projekt an sich allgemein zugute kam.

manch einer nutzt es ja sogar innerhalb von Firmen und verdient indirekt damit Geld). Immerhin habe ich für das Projekt mein USBSynC geopfert und hatte selbst überhaupt keinen Nutzen vom AppDater

Hmm. Dann hast du imho was falsch gemacht: Entweder hättest du von Anfang das Programm als Shareware rausgeben können, oder aber keine kommerziellen Komponenten dafür einsetzen sollen. Jetzt aber zu lamentieren, dass du Geld in das Projekt reingesteckt hast, und nichts davon hast weil dir kein was für zurückzahlt, ist nicht das Problem der Anwender, sorry.

Versteh mich nicht falsch. Ich kann absolut nachvollziehen, dass du das Projekt aus Zeit- oder persönlichen Gründen nicht weiter pushen willst. Du hast deine Gründe genannt, und die akzeptier ich: Fehlen von Motivation, Suche nach anderen Projekten die dir mehr Spass machen usw. Dass manche in der Tat nur neue Funktionalitäten fordern, ohne eigenen Einsatz mitzubringen, darin kann ich dich schon verstehen. Aber bitte wälze darüber hinaus nicht ein Verschulden auf die Tester und Nutzer deiner Software ab. Das kann ich so nicht befürworten.

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

Da muss ich dir absolut recht geben. Ich habs nie wirklich gesagt und habe es wohl tatsächlich falsch angegangen - das war mein Fehler und in dem Fall dann auch nicht eurer bzw. deiner - immerhin habe ich die kommerzielle Nutzung innerhalb der Lizenzbestimmungen ausdrücklich erlaubt.

Deine Unterstützung beispielsweise hat mir sehr geholfen und da bin ich nach wie vor sehr dankbar.

Somit mache ich von der Seite her auch niemandem einen Vorwurf. Ich muss es wohl auch mehr auf die Zeit schieben nachdem ich angekündigt hatte dass ich das Projekt gerne kommerzialisieren möchte. Da kamen teilweis schon sehr unverschämte E-Mails und vermutlich war es auch dass das mir dann erst die Lust verdorben hat 😦 Immerhin wurde mir mehrmals doch schon klar zugetragen dass zwar reges Interesse besteht das Programm zu nutzen aber nur noch wenn ich die alte Version fertig mache oder möglichst diese dann OpenSource mache und nur die neue Version unter dem Namen AppDater verkaufe.

Das kann ich aber tatsächlich nicht auf alle hier verallgemeinern und somit sollen sich auch nicht alle angesprochen fühlen.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo EvilMM,

Ich muss es wohl auch mehr auf die Zeit schieben nachdem ich angekündigt hatte dass ich das Projekt gerne kommerzialisieren möchte.

da muss ich dir dann aber leider einen Vorwurf machen. Ich habe den Thread lange Zeit einfach laufen lassen und nur sehr am Rande verfolgt. Deshalb kommt dieser Vorwurf erst jetzt, wo ich es sehe und nicht schon als du die Kommerzialisierung angesprochen hast.

Das Forum Projekt ist nach der Forenbeschreibung zur "Vorstellung von eigenen Projekten zur freien Benutzung durch die Community". Und das war es ja zu Anfang auch. Du darfst aber einen Projekte-Thread nicht dazu verwenden, um Leute mit einer kostenlosen Benutzung zu ködern, um die am Ende dann auf die kommerzielle Version umzulenken (egal ob das von Anfang an so geplant ist oder sich erst später ergibt).

Verstehe mich nicht falsch. Ich begrüße ausdrücklich, dass du dich für die Community engagiert hast und ich habe auch nichts dagegen, wenn du mit deiner Arbeit Geld verdienen willst. Und ich kann bis zu einem gewissen Grad auch die Zwickmühle verstehen, wenn du ein Projekt als Community-Projekt beginnst und sich dann doch der Wunsch ergibt, damit etwas zu verdienen.

Aber ich sage es nochmal klar. Das Forum Projekte ist nur für Community-Projekt und darf nicht dazu genutzt werden, um eigene kommerzielle Interessen zu verfolgen.

Da das Projekt ohnehin eingestellt ist, schließe ich daher diesen Thread. Wenn es noch etwas zu sagen gibt, schickt mir eine PM. Um Beiträge von öffentlichem Interesse einzustellen, kann ich auch in Absprache den Thread kurzzeitig wieder öffnen.

herbivore

Thema geschlossen