Laden...

updateSystem.NET

Erstellt von Maximilian vor 14 Jahren Letzter Beitrag vor 11 Jahren 159.429 Views
209 Beiträge seit 2007
vor 12 Jahren

Hallo,

zunächst einmal, echt tolles Projekt.
Nur eine Sache verstehe ich nicht, wie speichere ich nach einem Update die neue Version? Er läd nämlich immer wieder die gleichen Updates.

updateController.updateInteractive(this);

Wenn ich nach diesem Aufrufe mir den Inhalt von releaseInfo.Version angucke, ist es immernoch die alte Version.

Danke für jede Hilfe.

lg Jo0oker

1.029 Beiträge seit 2010
vor 12 Jahren

Hi,

dafür gibt's zwei Möglichkeiten:

  1. Die Eigenschaft des UpdateControllers in der Assembly erhöhen
  2. Die Versionsnummer der Assembly bei entsprechender Projekteinstellung verändern (bevorzuge ich)

Musst halt in jedem Fall die Assembly beim Update mitliefern.

LG
Achim

193 Beiträge seit 2007
vor 12 Jahren

Gibt es bei der neuen Version keine Hilfedatei mehr?

**:::{style="color: darkblue;"}If debugging is the process of removing bugs, then programming must be the process of putting them in.){darkblue}** Dijkstra
Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Mahlzeit Floschi,
sorry für die Verspätung, die Doku kann man sich nun direkt von der Website laden: http://updatesystem.net/Help/Documentation.aspx

Mahlzeit zusammen,
für alle die meinen Blog nich lesen: Seit einer Woche gibt es das finale Update der Version 1.5. das auch schon das ein oder andere Mal heruntergeladen wurde. Und da mich noch keine Meute mit Fackeln und Heugabeln jagt gehe ich mal davon aus das die Version soweit stabil läuft.

Falls doch mal ein Fehler auftreten sollte gibt es ja wie schonmal erwähnt einen Bugtracker. Zum hinzufügen von neuen Fehlern benötgt man allerdings einen Benutzeraccount. Wer sich nich registrieren möchte kann nun einen Gastaccount verwenden:
Benutzername: Gast
Passwort: gast123

Ich muss allerdings diejenigen vertrösten, die auf die Kommandozeilenoptionen warten. Diese kommen mit dem nächsten Update zusammen mit den Templates für Updateprojekte, da die beiden Sachen nun zusammenhängen. Wann genau erfährt man am ehesten über die Roadmap.

Schönes Wochenende und viele Grüße,
Maximilian 😃

223 Beiträge seit 2009
vor 12 Jahren

Hi Maximilian,

wollte mir gerade deine neuste Version des UpdateSystem von deiner Webseite downloaden.
Leider schlug sofort mein Virenscanner (Norton 360°) zu und meldet mir "Insight Netzwerk Bedrohung", die exe wird dann sofort automatisch gelöscht!

Weißt du an was das liegen kann? Könnte ja ne Ausnahme für die exe hinzufügen aber wollte zuerst mal den Grund für diese Meldung wissen...

Dankeschön

Grüße Pico

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey Pico1184,
nee sorry, kann ich mir nicht erklären warum Norton da meckert. Habe das Setupfile eben duch VirusTotal gejagt und da gibt es nich einen einzigen der etwas erkennt:
http://www.virustotal.com/file-scan/report.html?id=73d2febb0c2110a6fd6b0d7684591870e803d3dfc6ffa8c574e8a281457d6762-1305557715

Ich kann dir aber versichern das mit dem Setup alles OK ist 😃

Cheerio

139 Beiträge seit 2010
vor 12 Jahren

Hallo Maximilian,

erstmal ein großes Lob für diese Super Anwendung. Es hat alles Soweit funktioniert (Von der Erstellung des Projekts bishin zum Upload des Updates) nur leider scheitert es in der letzten Instanz - und zwar beim Einbinden in das eigentliche .NET Projekt.

Bekomme beim Compile folgende Melding:

Fehlermeldung:
Fehler 1 21 Der Typ- oder Namespacename "updateSystemDotNet" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) C:...\MainWindow.xaml.cs 7

Obwohl im Code alles richtig integriert ist und zur Entwurfszeit auch keine Probleme beim Zugriff auf das Objekt besteht.

Hast du eine Idee woran es liegen kann?

Gruss

139 Beiträge seit 2010
vor 12 Jahren

Problem gefunden. Meinem Projekt hat die Datei "System.Design" gefehlt, welche scheinbar vom updateSystem verwendet wird.

Jetzt läufts!

Gruß,
reloop

F
258 Beiträge seit 2008
vor 12 Jahren

Sag mal, kann ich eigentlich die Sprache des Updaters ändern? Oder eigene Übersetzungsdlls mitgeben?

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey Fabian,
die Sprache ist derzeit statisch auf Deutsch und Englisch beschränkt, da kann man derzeit von außen nichts machen. Für spätere Versionen wäre es vermutlich aber Ratsam das irgendwie zu ermöglichen, muss ich mal schauen.

Cheerio

F
258 Beiträge seit 2008
vor 12 Jahren

Okay, dumme Frage, ich habe den Updater gerade nicht hier, wie stellt man die Sprache um? Eine einfache Property?

Englisch reicht mir 😃

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Ich kann grad auch nicht nachschauen (^^) aber irgendwas mit "Language" als Property im updateController isses 😃

Cheerio

C
31 Beiträge seit 2009
vor 12 Jahren

Hi,

erstmal muss ich sagen, dass ich Dein Projekt richtig gut finde, habe momentan vor es bei einem Projekt von mir einzusetzen.

Es gibt nur eine Sache, die für mich ziemlich wichtig ist: Ist es möglich, ein bestimmes Update auszuwählen und zu installieren und nicht immer das neuste?

Hintergrund: Von meiner Anwendung gibt es verschiedene Varianten, und wenn das neuste Update für Variante A ist sollte Variante B natürlich nur die neuste Variante B installieren können.

Die verschiedenen Varianten erkenne ich über die CustomFields, ich würde nur noch eine Möglichkeit benötigen, ein bestimmtes Update auszuwählen.

Gruß
Mathias

F
258 Beiträge seit 2008
vor 12 Jahren

Du kannst, falls Updates gefunden werden, jedes einzeln durchgehen und irgendwas damit anstellen.
Du musst auch nicht diesen vorgefertigten Updateweg benutzen, du könntest prinzipiell auch eine eigene GUI dafür schreiben und nur die Daten des Controllers benutzen.
Sollte zumindest so klappen.

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hi,
das geht noch einfacher, schau dir mal das confirmUpdatePackage-Event an:

Tritt ein, wenn während der Updatesuche ein neues Updatepaket gefunden wurde, welches neuer als die lokale Version ist.
Durch das Abonieren dieses Events kann mit der Rückgabe von True bzw. False im EventHandler dieses Paket bestätigt respekive abgelehnt werden.

😃

Cheerio

C
31 Beiträge seit 2009
vor 12 Jahren

Und wie einfach das geht, habs nur in der Doku nicht gesehen. Sehr schön gelöst 😃

Danke für die schnelle Antwort.

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hallo zusammen,
in letzter Zeit war es ein bisschen Ruhiger hier, was allerdings nicht bedeutet, dass ich in dieser Zeit untätig war. Ich arbeite an der Version 1.6 die wohl eine der größten Neuerungen seit langem mitbringt:
Es wird zum Veröffentlichen der Updates kein FTP-Server mehr benötigt. Die Option gibt es zwar weiterhin aber man kann zudem die Updates ins Dateisystem bzw. auf eine Netzwerkfreigabe veröffentlichen lassen.
Wer eine wahrlich frühe Version testen- bzw. die weiteren Neuerungen einsehen möchte, kann dies hier tun: updateSystem.NExT

Cheers

K
110 Beiträge seit 2007
vor 12 Jahren

Seit zwei Tagen ist die Webseite vom Updatesystem nicht mehr erreichbar.

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

~~Jo, dass tut mir Leid. Mein Server ist seit Gestern nicht mehr Erreichbar seitdem der Hoster Wartungsarbeiten durchgeführt hat. Dieser weiß bescheid und arbeitet laut Helpdesk an dem Problem, ich kann da nichts machen außer warten und hoffen das möglichst schnell die Kiste wieder läuft.

Sorry 😦~~

Edit 12:44: Hah! Kaum gemeckert schon geht's wieder, Website und co sind alle wieder up and running 🙂

Cheers

P
3 Beiträge seit 2011
vor 12 Jahren

Echt Super das du sowas machst. Bei mir fängt er auch an die Updates zu laden nur irgendwie komisch.

  1. Der erhöht garnicht die aktuelle version meines Programmes. Das heißt er sagt mir immer das es updates zu downloaden gibt.
  2. Was lädt er runter und wo speichert er es ab? Wo genau muss ich den angeben das er meine exe downloaden soll, weil im Updates Ordner auf meinem Server sind 2 dateien. Einmal ein XML Dokument und eine rar datei die ich nicht öffnen kann.
1.029 Beiträge seit 2010
vor 12 Jahren

Hi,

bin mir nicht sicher wovon du genau redest - aber:

Updates verwaltet man über das mitgelieferte Administrationstools - du selbst
musst doch garnichts an xml/rar-Dateien machen...

Was das Aktualisieren selbst angeht:
Du musst auch irgendwo durch dein Update die Versionsnummer erhöhen.
Dazu gibts mehrere Einstellungsmöglichkeiten.

Meine Programme sind so konfiguriert, dass der Updater sich die Versionsnummer
aus der jeweiligen Assembly raussucht. Wenn ich ein Update mache erhöhe ich vor
dem Build die Versionsnummer und lade diese als Update hoch.

LG
Achim

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey Pain25,
zudem was Achim schon gesagt sei dir vielleicht noch mein Schritt-für-Schritt Schnellstarttutorial ans Herz gelegt, dass beantwortet die meisten Fragen am Anfang.
Die Dateien auf dem Server sowie der temporäre Speicherort von den Dateien beim herunterladen sind nicht relevant, der updateInstaller kümmert sich um die richtige Verteilung der Daten.
Falls das trotzdem nicht deine Fragen beantwortet, dann Frag nochmal nach 😃

Cheers

115 Beiträge seit 2008
vor 12 Jahren

Hallo Maximilian,

ich bin derzeit an einem VSTO 3.0 Addin für Outlook 2007 am basteln und wollte dafür Dein Update-System einsetzen.

Nach einigen Fehlversuchen habe ich mir dann eine kleine Windows-Forms-Anwendung erstellt um das Update an sich erst mal hinzubekommen. Deine Beispielanwendung hat mir da sehr weitergeholfen, danke dafür!

Den Code aus meinem Testprojekt habe ich dann in mein Addin eingebaut, erhalte jedoch immer den Fehler "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." bei folgendem Aufruf:


if (_upctrlMain.checkForUpdatesDialog(this) != DialogResult.OK)
                return;

Im Testprojekt geht dies jedoch einwandfrei!

Was mache ich falsch oder funktioniert Dein System mit VSTO-Addins nicht?

Bei Bedarf stelle ich Dir den Code von meinem Projekt mal zur Verfügung - per Mail...

Grüße,
Michael

Grüße,
der Michael

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Moin Michael,
eins Vorweg: Ich habe keine Ahnung von der Programmierung von Officeaddins, deshalb sind das jetzt alles nur Vermutungen 😃
Der updateController besorgt sich an einigen Stellen Daten aus dem aufrufenden Assembly, es kann möglich sein, dass dieses Verhalten bei Office Addins anders ist, weshalb es bei deiner Testanwendung klappt im eigentlichen Addin aber nicht. Bekommst du zu dem Fehler einen Stacktrace? Wenn ja wäre dieser interessant damit ich weiß an welcher Stelle der Fehler auftritt und man da evtl. drumrum kommt 😃

Cheers

1.029 Beiträge seit 2010
vor 12 Jahren

Hi,

als Hinweis zur Problemfindung, da mir das auch mal negativ auffiel:
Application.StartupPath ist bei OfficeAddIns glaube ich nicht belegt/Null.

Könnte mir vorstellen, dass es für das UpdateSystem eine nicht
unwichtige Bedeutung hat.

Viel Glück!

LG
Achim

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Moin zusammen,
seit Gestern gibt es die erste Betaversion der Version 1.6 zum Download: Einmal Beta zum mitnehmen, Bitte

Es wäre Toll wenn soviele wie Möglich diese Version testen könnten und mir Feedback geben. Denn je mehr Feedback ich bekomme desto besser wird dann die fertige Version was dann wiederum euch zugute kommt 😃

Danke 😃

Cheers

115 Beiträge seit 2008
vor 12 Jahren

Hallo Maximilian,

endlich komme ich mal dazu Dir zu antworten!

Der updateController besorgt sich an einigen Stellen Daten aus dem aufrufenden Assembly

In dem Fall wäre das meinem Verständnis nach Outlook - für ein Outlook Addin. Auch wenn die Update-Routine in der Addin-DLL selbst steckt.

Bekommst du zu dem Fehler einen Stacktrace? Wenn ja wäre dieser interessant damit ich weiß an welcher Stelle der Fehler auftritt und man da evtl. drumrum kommt 😃

Mittlerweile ist meine Addin deutlich gewachsen. Ich müsste mal eine alte Version aus dem SVN suchen, wo das noch drinne ist, oder es einfach nochmal einbauen. Bedarf?

Aber noch etwas anderes: Wenn ich ein komplettes Setup verteilen möchte (da die neue Version andere Pfad in der Registry benutzt etc.pp.) und das Setup dann vor der Installation die alte Version deinstalliert, was muss ich da machen? Ich hab schon probiert einen Prozess starten zu lassen, aber das greift nicht wirklich. Die Setup-Dateien werden nur entpackt.

Grüße,
Michael

Grüße,
der Michael

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Mahlzeit Michael,
am Stacktrace bin ich immernoch inteteressiert wobei der Grund vermutlich dann Outlook ist. Denn das ist keine Managed Anwendung und von daher kommt es dann zum Problem. Mal schauen ob ich das irgendwie umgehen- bzw. mir die notwendigen Informationen anderswo her organisieren kann.

Wegen dem Setup: Versuche mal statt "%temp%" als Variable "$tempdir" zu benutzen, die müsste dann korrekt mit dem Tempverzeichnis während der Laufzeit gesetzt werden.

Mahlzeit zusammen,
ich würde mich übrigens immernoch über Feedbacks zur aktuellen Beta freuen. Die momentane Anzahl könnte selbst ein Metzger an seinen Fingern abzählen, der sich alle 10 bei der Arbeit abgesägt hat. Danke 😃

Cheers

H
4 Beiträge seit 2011
vor 12 Jahren

ich würde mich übrigens immernoch über Feedbacks zur
>
freuen.
Cheers

so hab mir mal die beta gezogen und folgende punkte auf den ersten Blick zu "bemängeln":
-> nur neues projektformat, kann kein altes projekt importieren
- warum ist zumindest die Projekt ID nicht editierbar, so könnte man das selbst anpassen

-> Projektinformationen - Visual Studio Integration
- kein Scrollbalken, Text teilweise abgeschnitten

-> Updatepaket erstellen
- kein Browserdialog bei Dateiauswahl, z.B. Datei umbenennen
- Prozess starten -> Text für Kommandoparameter nicht komplett sichtbar

-> Veröffentlichen
- nicht auf Anhieb sichtbar das man aus der Menüleiste eine Schnittstelle hinzufügen muss

so werd dann mal weiter testen...
grüße

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey holgi,
erstmal Danke fürs Testen 😃

-> nur neues projektformat, kann kein altes projekt importieren

Keine Panik, alte Projekte wird man mit der neuen Version öffnen können, das habe ich nur noch nicht fertig.
Das man die Projekt-Id nicht editieren kann ist beabsichtigt. Hängt mit der Verknüpfung an den Statistikdienst zusammen.

-> Projektinformationen - Visual Studio Integration
[...]

  • Prozess starten -> Text für Kommandoparameter nicht komplett sichtbar

Mh, normaler Weise sollte das alles ins Fenster passen. Was für ein OS und Auflösung setzt du ein?

  • kein Browserdialog bei Dateiauswahl, z.B. Datei umbenennen

Naja, der Pfad dort bezieht sich ja auf den Client-PC, dafür gibts ja die Pfadvorlagen, was für eine Datei willst du denn da mit dem Browserdialog selektieren?

  • nicht auf Anhieb sichtbar das man aus der Menüleiste eine Schnittstelle hinzufügen muss

Das habe ich mir schon fast gedacht. Mal schauen was mir dazu noch einfällt.

Danke nochmal 😃

Cheerio

1.029 Beiträge seit 2010
vor 12 Jahren

Hallo Maximilian,

kann mich leider noch nicht für die neue Version begeistern - deswegen erst der späte Test - allerdings dazu im Folgenden mehr 😉:

  1. Auch über die nun verfügbaren Proxy-Einstellungen für die Administration
    ist es nicht möglich durch unsere Firewall zu kommen. (Siehe bisherige Kommunikation zum updateController selbst)

  2. Kopien der VS-Integration (WinForms) endet lediglich in einer NullRef-Exception

  3. Ich kann das UpdateSystem nicht testen... (Jedenfalls nicht wie erhofft)
    Und zwar habe ich versucht, das Ganze für ein internes Word-Addin einzubauen und habe auch etwas tiefer gegraben.

Und zwar gehts um Folgendes:
Beim Aufruf von "updateInteractive" erhalte ich eine > Fehlermeldung:

**System.NullReferenceException **wurde nicht von Benutzercode behandelt.
Message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Source=updateSystemDotNet.Controller
StackTrace:
bei updateSystemDotNet.Internal.Log.writeHeader() in S:\Sources\UpdateSystem.Net\Source\updateController\Internal\Log.cs:Zeile 48.
bei updateSystemDotNet.Internal.Log..ctor() in S:\Sources\UpdateSystem.Net\Source\updateController\Internal\Log.cs:Zeile 27.
bei updateSystemDotNet.Internal.Log.get_Instance() in S:\Sources\UpdateSystem.Net\Source\updateController\Internal\Log.cs:Zeile 35.
bei updateSystemDotNet.updateController.prepareUpdateCheck() in S:\Sources\UpdateSystem.Net\Source\updateController\updateController.cs:Zeile 1009.
bei updateSystemDotNet.updateController.checkForUpdatesDialog(IWin32Window owner) in S:\Sources\UpdateSystem.Net\Source\updateController\updateController.cs:Zeile 275.
bei updateSystemDotNet.updateController.updateInteractive(IWin32Window owner, updateDownloadBaseForm downloadDialog) in S:\Sources\UpdateSystem.Net\Source\updateController\updateController.cs:Zeile 565.
bei updateSystemDotNet.updateController.updateInteractive() in S:\Sources\UpdateSystem.Net\Source\updateController\updateController.cs:Zeile 539.
bei OfficeRibbonProvider.ThisAddIn.ThisAddIn_Startup(Object sender, EventArgs e) in Y:\EDV\AS\Development\Wichtig Eigene\OfficeRibbonProvider\OfficeRibbonProvider\ThisAddIn.cs:Zeile 53.
bei Microsoft.Office.Tools.AddInImpl.OnStartup()
bei Microsoft.Office.Tools.AddInImpl.AddInExtensionImpl.Microsoft.Office.Tools.EntryPoint.OnStartup()
bei Microsoft.Office.Tools.AddInBase.OnStartup()
bei OfficeRibbonProvider.ThisAddIn.FinishInitialization() in Y:\EDV\AS\Development\Wichtig Eigene\OfficeRibbonProvider\OfficeRibbonProvider\ThisAddIn.Designer.cs:Zeile 59.
bei Microsoft.Office.Tools.AddInBase.Microsoft.Office.Tools.EntryPoint.FinishInitialization()
bei Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.ExecutePhase(ExecutionPhases executionPhases)
bei Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization. Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IExecuteCustomization2.ExecuteEntryPoints()
InnerException:

Mein erster Versuch das zu verhindern bestand aus der Zeile:
updateController.enableLogging = false;

Wirkung: Selbe Exception - mit ähnlichem Stacktrace nur beim disablen vom Loggen. (was natürlich schade ist, da er ja garnichts loggen sollte)

Nun - hab etwas nachgeschaut und geprüft: die NullReferenceException entsteht beim Aufruf von "Assembly.GetEntryAssembly", welche bei AddIns wohl nicht verfügbar ist.

Schön wäre es, wenn man die Assembly vll. selbst angeben darf oder ähnliches.

Weiter kam ich somit beim Testen leider nicht.

  1. Um es kurz zu fassen: Das Design war früher intuitiver, wobei ich es nach wie vor noch verständlich finde...

  2. Ich fände es sehr schade, wenn du PHP-Statistik-Server kpl. ausschließen möchtest - dafür wäre die neue Version für mich indiskutabel, da ich vom Unternehmen halt keinen ASP-Server zur Verfügung habe - uns jedoch durchaus interessiert, wie viele Leute meine Programme verwenden...
    (Das war der Grund, aus dem ich früher "keine Lust" zum Testen hatte)

LG
Achim

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey Achim,
Zu 1.: Was hast du als Proxyeinstellung gesetzt? Und bei welcher Funktion der Administration kommst du nicht durch den Proxy? Eigentlich nutze ich ja jetzt die NetworkCredentials (sofern eingestellt) womit das eigentlich klappen müsste (ihr hattet doch auch einen ISA als Proxy oder?).

Zu 2.: Muss ich mir nochmal anschauen.

Zu 3.: Ihr mit euren Addins ^^ Muss mir wohl doch mal die VS Tools für Office installieren damit ich das mal selber testen kann, sonst wird das nix.

Zu 4.: Das ist schade, habe eigentlich gedacht so ist es nun besser, gab dazu leider auch kaum Feedback. Was findest du denn jetzt weniger intuitiver als vorher? Ist ja noch nichts verloren 😉

Zu 5.: Das mit den PHP Statistiken ist weniger ein technisches Problem, eher eines bei mir 😃 Ich schaffe es zeitlich einfach nicht. Es ist technisch möglich der Administration eine andere als die ASP.NET Version unterzujubeln, dafür müsste diese dann in die gewünschte Sprache übersetzt werden und die richtigen Anfragen und Antworten verarbeiten bzw. senden. Den Quellcode der Serverseite gibt es schon immer komplett im Verzeichnis des Updatesystems. Das Problem ist dann nur die Umsetzung...

Aber Danke auf jeden Fall für's testen soweit 😃

Cheerio

Hinweis von herbivore vor 12 Jahren

Bitte alles Weitere zu den schon gemeldeten Fehlern per PM. Das Endergebnis kann natürlich wieder in den Thread.

T
253 Beiträge seit 2006
vor 12 Jahren

Ich muss mich leider nach langem testen hier auch einmal melden. Ich habe meine Software mit einem Setup ausgerollt. Nun soll ein Update erscheinen, was leider nicht klappt. Über die Administration ist alles ordnungsgemäß eingestellt und er lädt auch scheinbar Daten herunter, die jedoch nie im Verzeichnis ankommen. Starte ich das Programm nach dem Update erneut habe ich immer noch die alte Version.

Die Version ermittle ich wie folgt:


System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

Das Update wird mit folgenden Code angeschoben:


var updateController = new updateSystemDotNet.updateController("http://update.meineDomain.de/Mein Produkt/");
updateController.releaseFilter.checkForAlpha = false;
updateController.releaseFilter.checkForBeta = false;
updateController.releaseFilter.checkForFinal = true;
updateController.projectId = "Meine ID";
updateController.publicKey = "Mein Key";

updateController.requestElevation = true;
updateController.restartApplication = true;
updateController.autoCloseHostApplication = true;

if (updateController.isUpdateDownloaderBusy)
    return;

updateController.updateInteractive(this);

Unklar ist auch, wie ich Daten in einem Unterverzeichnis aktualisieren kann. Ich kann zwar einen Ordner auswählen von dem dann der Inhalt erscheint aber wird die Struktur dann auf dem zu aktualisierendem System beibehalten?

EDIT:

Ich habe mal weiter rumgespielt und dabei folgendes herausgefunden. Mein Update funktioniert, wenn ich nur Dateien im Hauptverzeichnis aktualisieren möchte. Unterorder haben bis zu dem Zeitpunkt geklappt, an dem ich eine weitere nicht im Setup gewesene Datei in das Update-Projekt hinzugefügt habe. Seit dem werden die Dateien, die in einen Unterordner sollen auch im Hauptverzeichnis abgelegt.

Meine Idee war nun, das ich mir einfach ein gleichnamiges Verzeichnis erstelle und dort die Dateien ablege. Das führt aber zu einem Fehler beim Versuch das Update zu installieren, weil es den Ordner ja schon gibt. Ein schwerwiegender Folgefehler ist, dass das Update nicht zurückgerollt wird und meine Applikation damit nicht mehr lauffähig ist, weil unteranderem die Anwendungsdatei (exe) schon entfernt war.

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Moin,
eigentlich sollten Dateien in Unterverzeichnissen die vorher nicht existent waren kein Problem sein, genauso wie ein Rollback der Dateien bei einem Fehler. Ich werde mir das mal anschauen.
Könntest du mir bitte per PM ein paar Informationen zu dem Aufbau deines Updatepakets geben was diesen Fehler auslöst? Danke.

458 Beiträge seit 2007
vor 12 Jahren

Hallo,

in der Beta der 1.6er Version scheint noch ein Bug beim kopieren der Einstellungen fuer den WinForms Designer zu sein, beim Klick auf "Daten kopieren" passiert bei mir (Win7 64Bit Ultimate) garnichts, in der 1.5.2.515 hat es funktioniert.

be the hammer, not the nail!

Z
403 Beiträge seit 2007
vor 12 Jahren

Hallo Maximilian,

Ich verwende das UpdateSystem nun mehr als 1 Jahr ohne größere Probleme, und es gefällt mir echt gut.

Folgende Dinge sind mir in der Zeit noch aufgefallen:

  1. Es gibt derzeit keine möglichkeit mit SFTP Updates zu veröffentlichen (falls überhaupt möglich).

1.1. Laufen die Updates selber über HTTP oder FTP ?

  1. Es gibt bisher keine Möglichkeit die Update Dialoge zu Lokalisieren (?).

  2. Dialoge im UpdateSystem sind oft nicht resizeable (manchmal nervig).

  3. Changelog sollte aus vorherigem Update genommen werden, oder Dateipfad gespeichert werden.

  4. Die Option das "Service Pack" als Standard voreingestellt werden soll fehlt mir.

  5. Mehr Optionen bei Statistik wären toll (z.B. wie viele Downloads/Anfragen von wann bis wann gemacht worden sind in Zahlen).

Gruß

André

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey André 😃
bin derzeit in England, deshalb fasse ich mich kurz:

zu 1.: SFTP geht noch nicht. Ich weiß auch noch nicht wann ich das unterstützen kann, mal schauen. Mit der Version 1.6 kann man die Updates ja auch ins Dateisystem pushen, dann kann man zumindest die Pakete manuell via einem anderen SFTP Clienten übertragen.
zu 1.1: Mit der aktuellen Version werden die Updates über HTTP abgerufen, mit der neuen Version 1.6 (Beta gibts schon) kann man aber die Updates auch über das Netzwerk beziehen.
zu 2.: Nee, die sind derzeit nur statisch in Englisch oder Deutsch lokalisiert. Da ich aber mit späteren Versionen das ganze Updatesystem lokalisieren möchte wird sich das früher oder später ändern.
zu 3.: werde ich ändern
zu 4.: Hast du denn in jedem Update immer die gleichen Änderungen oder warum willst du die Änderungen übernehmen? Das mit dem Pfad hingegen macht Sinn, wird übernommen.
zu 5.: Find ich gut, wird kommen.
zu 6.: Da brauche ich mehr Details, die Zahlen siehst du doch wenn du mit der Maus über den Graphen hooverst ...

Beste Grüße aus London,
Maximilian

458 Beiträge seit 2007
vor 12 Jahren

Hallo Maximilian,

ich verwende das updateSystem nun seit einem knappen halben Jahr ohne Probleme.
Bei einer Maschine tritt nun ein Fehler auf, den ich mir nicht erklaeren kann.

Backgroundinformationen Clientrechner:

  • Windows XP Professional SP3
  • .NET Framework 4 Client Profile
  • .NET Framework 4 Extended

Im updateController habe ich autoCloseHostApplication und autoCloseUpdateInstaller auf true stehen.
Wurde nun ein Update gefunden und es soll installiert werden, wird es heruntergeladen, die HostApplication geschlossen und ein Fehler wird geworfen:

Fehlermeldung:
updateInstaller.exe - .NET Framework Initialization Error
Unable to find a version of the runtime to run this application.

Meine Application laeuft ganz normal und ohne Auffaelligkeiten, wenn ich das gefundene Update nicht installieren moechte.

Koenntest du mir sagen, wann dieser Fehler geworfen wird?

Gruß a3quit4s

be the hammer, not the nail!

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey,
das ist merkwürdig. Der updateInstaller (bei dessen Start der Fehler auftritt) hat genau die gleichen Voraussetzungen wie das updateController Library, ich kann mir irgendwie nicht erklären warum er da ein Problem mit dem .NET Framework hat. Tritt das Problem auch auf anderen XP Rechnern auf?

Lg,
Maximilian

Hinweis von herbivore vor 12 Jahren

Bitte die Antwort und etwaige weitere Nachfragen per PM. Das Endergebnis kann natürlich gerne wieder hier in den Thread.

458 Beiträge seit 2007
vor 12 Jahren

Endergebnis:

Es lag daran, dass das Framework 2.0 nicht installiert war - ueber den Hintergrund kann Maximilian bestimmt mehr sagen.

be the hammer, not the nail!

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hallo zusammen, ich habe da eine Ankündigung zu machen:

Ich habe beschlossen den Quellcode des updateSystem.NET zu veröffentlichen. Auch wenn ich hier immer dagegen war, ist es jetzt für mich der logischste Schritt den ich machen kann. Mir fehlt es momentan an der Zeit wirklich aktiv am Projekt weiterzuentwickeln, und da ich mit dem Updatesystem keine kommerziellen Interessen verfolge (außer vielleicht ne Spende für die Kaffeekasse ^^) gibt's eigentlich auch nichts was dem entgegensteht.

Damit ihrs nicht falsch versteht: Ich werde natürlich weiter am Projekt weiterentwickeln und Updates und neue Versionen veröffentlichen, aber wem das nicht schnell genug geht, der kann sich dann aktiv selbst dran beteiligen und/oder n Bug fixen. Den Quellcode gibts wahrscheinlich ab Sonntag auf GitHub. Ich muss noch ein bisschen aufräumen und mir über die Lizenz gedanken machen, derzeit überlegt hatte ich folgendes:

Den updateController und updateInstaller stelle ich unter die LGPL damit man das Library einbinden und verwenden kann ohne den eigenen Source freigeben zu müssen. Der Rest kommt unter die GPL.

Mehr dazu und die URL zum Repository dann am Wochenende. Hätte denn hier jemand Interesse am Projekt mitzuentwickeln? Würde mich mal interessieren 😃

Viele Grüße,
Maximilian

1.029 Beiträge seit 2010
vor 12 Jahren

Hallo,

schade, dass es aktuell an der Zeit fehlt 😦
Schön, dass deine gute Arbeit nun nicht einfach versauert

  • das freut mich dahingegen sehr!

Grundsätzlich:
Ich hätte in ca. 1Monat privat wieder mehr Zeit und wäre durchaus interessiert, bei der Weiterentwicklung zu helfen bzw. mich zu beteiligen.

Gibt ja auch noch viel zu tun, wie z.B.:

  • Teil-Updates (nicht immer komplette Dateien abgleichen)
  • evtl. Verwendung von BITS

Was mich zusätzlich interessieren würde:
Vorausgesetzt das Projekt würde unterstützt durch irgendwelche Mithelfer:

  • Bleibt die Homepage intakt und kann gepflegt werden?
  • Bleibt das Zertifikat intakt (Win-UAC) ?

LG
Achim

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Hey Achim,
find ich toll das du mitmachen willst.

Kurz zu deinen Fragen:

Bleibt die Homepage intakt und kann gepflegt werden?

Ich selbst gebe das Projekt ja nicht auf und programmier weiterhin mehr oder weniger aktiv mit, von daher wird natürlich die Homepage weiterhin erreichbar sein und auch gepflegt werden. Ich bastle grad an einer neuen Version von welcher dann auch der Code im Repository landen wird.

  • Bleibt das Zertifikat intakt (Win-UAC) ?

Ich kann das Zertifikat natürlich nicht anderen zur Verfügung stellen, aber die Releaseversionen die über die Website dann verteilt werden, werde ja weiterhin ich kompilieren und dann natürlich auch signieren 😃

1.029 Beiträge seit 2010
vor 12 Jahren

Hi und danke für die Antwort!

Dann bleibt nur zu sagen: Meld dich wenn's verfügbar ist - dann werde ich erstmal reinschnuppern 😃

Als Feedback bzgl. Proxy noch:
Mit einer Astaro-Lösung funktioniert alles automatisch !

LG
Achim

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 12 Jahren

Moin,
wie angekündigt gibts ab heute den Quellcode bei GitHub: https://github.com/maximilian-krauss/updateSystem.NET

Jeder der möchte kann das Projekt forken und ändern. Wenn die Änderung sinnvoll ist kann man auch einen PullRequest an mich senden, dann kann ich diese in den Master-Branch mergen.

Kleine Anmerkung zum Quellcode noch: Es gibt mit Sicherheit die ein oder andere Stelle die einen Platz im Codingstyle Horror verdient hat. Das liegt einfach da dran, dass ich seit ca. 3-4 Jahren an dem Projekt werkel und quasi immer neues dabei gelernt habe. Das sieht man ganz gut wenn man z.B. die Administration mit dem updateInstaller vergleicht. Erstere habe ich erst vor kurzem komplett neu geschrieben, letzterer ist schon ein wenig in die Jahre gekommen und steht als nächstes auf meiner Refactoring-Liste.

458 Beiträge seit 2007
vor 11 Jahren

Ich habe immernoch das Problem, dass ich keine Updates auf Maschinen, die nur das Framework 4 installiert haben installieren kann. Es muss zwingend das Framework 2.0 auch drauf sein - ne Idee woran das liegen koennte?

be the hammer, not the nail!

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 11 Jahren

Hey,
bis jetzt konnte ich das Problem noch nicht wirklich nachvollziehen bzw. erklären. Ich werde mir am Wochenende wohl mal eine frische VM aufsetzen müssen damit ich das nachstellen kann. Vielleicht isses nur eine Compilereinstellung.
Nur aus Interesse: Läuft die Administration auf den entsprechenden PCs? (Antwort bitte als PM).

Lg,
Maximilian

Maximilian Themenstarter:in
238 Beiträge seit 2007
vor 11 Jahren

Mahlzeit zusammen,
Ich habe ein bisschen wegen dem Problem von aequitas gegoogelt und auch etwas gefunden:
.NET 4.0 Not Backward Compatible?

Laut Microsoft ist das Verhalten also "by Design". Um das zu umgehen muss man der Anwendung ein app.config mitgeben in der man explizit sagt das man .NET 4.0 unterstützt. Diese app.config hat der updateInstaller nicht und ihm das beizubringen ist nicht so leicht. Diese Änderung werd ich dann wohl erst in Version 1.6 umsetzen können.
Bis dahin muss auf XP Machinen leider beides .NET 2.0 und 4.0 installiert werden, wenn man .NET 4.0 Anwendungen mit dem updateSystem.NET verwenden möchte.

Beste Grüße,
Maximilian

T
381 Beiträge seit 2009
vor 11 Jahren

Ich verwende den Updater immer gerne, ich weiß nicht wie es Zeitlich klappt - Grundsätzlich hätte ich aber schon Interesse Erweiterungen dafür zu schreiben.

888 Beiträge seit 2007
vor 11 Jahren

Danke für die Veröffentlichung des Quellcodes!