Frage

    

Diese Frage bereits eine Antwort hier:

         

Wir sind in einem Prozess sind ein wirklich komplexes System zu entwickeln, bestehend aus mehreren WCF-Dienste, ASP.NET MVC-Anwendungen, Administrationstools (Windows Forms-Anwendungen) ... Einige von denen, werden Instanzen auf mehreren Servern ausgeführt haben. Wir suchen nach eine gute Auto-Update-Lösung für ein solches System. Wahrscheinlich müssten wir eine eigene Auto-Update-Anwendung (Service), die den Job, oder eine zentrale Admin-Anwendung tun, die remote über die Versionen aller installierten Instanzen und das Update kennen. Gibt es eine gute Produkt / Bibliothek, für diesen Zweck gemacht, dass Sie wissen, über oder hatten Erfahrung mit?

War es hilfreich?

Lösung

Persönlich verwende ich eine sehr einfache Methode für jede Art von Auto-Update:

  • Haben Sie einen Installer
  • Überprüfen Sie die neue Version (einfache WebClient und vergleichen Zahlen mit Ihrer aktuellen Assembly)
  • Wenn die Version höher zum Download neueste Installer (sollte aus Sicherheitsgründen über SSL sein)
  • Führen Sie die heruntergeladene Installationsprogramm und die Anwendung schließen. (In dieser Phase benötigen Sie Administratorrechte haben, wenn Sie Ihren Installateur Sie erfordert einen Administrator sein)

Das Installationsprogramm sollte darauf den Rest übernehmen. Auf diese Weise haben Sie immer die neueste Version und ein Installationsprogramm mit einer aktuellen Version.

Andere Tipps

mich Beginnen wir mit den Worten ich der Gründer der Firma bin, die eine vollständige Aktualisierung Lösung aufweist, die enthält:

wyUpdate kümmert sich um alle von den Vista / Windows 7 UAC Probleme und alle Dateiberechtigungsprobleme, die unweigerlich auftauchen, wenn Sie versuchen, komplexe Software zu aktualisieren.

Wir bieten auch kostenlose Lizenzen an wyBuild für Open-Source-Projekte , aber wenn Sie suchen nur Ihre eigenen Updater bauen Sie frei unseren Quellcode ausschlachten kann.

aber sagen, dass, wenn Sie Ihre eigenen Updater hier bauen sind einige Tipps:

Bauen Sie Ihre eigenen Updater

Ein guter Anfang ist die wyUpdate und AutomaticUpdater Quellcode erwähnte ich oben. Sie können es ausschlachten und es für Ihre eigenen Zwecke nutzen. Einige der Algorithmen enthält:

  • Voll Windows Vista / Windows 7 UAC Unterstützung
  • Möglichkeit für Benutzer mit eingeschränkten Rechten zu überprüfen und dann aktualisieren, wenn sie Anmeldeinformationen
  • Unterstützung für wonky Corporate inernet. (Wenn Sie jemals mit einem Unternehmen ist dies ein echtes Problem gearbeitet haben).
  • Schnell Extrahieren, Patching und Installation von Dateien.
  • Registry-Support.
  • Rollback-Dateien und Registry auf Fehler oder einen Abbruch durch den Benutzer
  • Selbst update (keine Dateien zurückgelassenen)

Wir haben auch die Dateispezifikationen hier .

Automatische Aktualisierung

Da die automatische ist eine Voraussetzung ist, lassen Sie mich Ihnen sagen, wie wir es mit unseren AutomaticUpdater Kontrolle .

Wir verwenden Named Pipes zwischen dem Standalone-Updater (wyUpdate) und der automatischen Updater Kontrolle sitzt auf Ihrem Programm Formular wissen. wyUpdate meldet Fortschritt der automatischen Updater und die automatische Updater kann wyUpdate Fortschritt abzubrechen sagen, den Download zu starten, starten Sie das Extrahieren, etc.

Dies hält den Updater getrennt von Ihrer Anwendung.

In der Tat, die genaue Named Pipes C # -Code verwenden wir in einem Artikel enthalten ich ein wenig schrieb vor einiger Zeit: Multi-Prozess C # app wie Google Chrome .

Hier ist eine Open-Source-Lösung, die ich spezifische Bedürfnisse hatten wir für WinForms und WPF-Anwendungen zu adressieren geschrieben. Die allgemeine Idee ist die größte Flexibilität haben, bei der niedrigsten Overhead möglich.

So, Integration ist super-einfach, und die Bibliothek tut so ziemlich alles, was für Sie, einschließlich Synchronisation Operationen. Es ist auch sehr flexibel , und können Sie bestimmen, welche Aufgaben auszuführen und zu welchen Bedingungen - machen Sie die Regeln (oder einige verwenden, die es bereits). Last durch nicht zuletzt ist die Unterstützung für keine Updates Quelle (Web, BitTorrent, etc) und alle Feed-Format -. Was auch immer Sie nicht implementiert kann nur für sich selbst schreiben

Kalt Updates (erfordert einen Neustart der Anwendung) wird ebenfalls unterstützt, und automatisch, es sei denn „Hot-Swap“ erfolgt für die Aufgabe festgelegt.

Dieses boild bis auf eine DLL, weniger als 70kb groß.

Weitere Informationen unter http: //www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

-Code ist unter http://github.com/synhershko/NAppUpdate (Lizenziert unter der Apache 2.0 Lizenz)

Ich plane es mehr über die Verlängerung, wenn ich etwas mehr Zeit zu bekommen, aber ehrlich sollten Sie in der Lage sein, schnell, es zu verbessern, dich für was auch immer es derzeit nicht unterstützt.

Auto-Aktualisierung WCF-Dienste und ASP.NET-Websites sollte möglich sein, auch zu tun mit ihm, „Hot-Swap“ von Dateien und „iisreset“ Aufgabe mit, wo nötig.

Clickonce für die Admin-Tools.

Wir untersuchten eine Handvoll Optionen und beschlossen, die AppLife aktualisieren Bibliothek zu verwenden für unser enterpise Projekt.

AppLife-Update schnell und einfach automatische Update-Funktion für Ihre .NET-Anwendungen hinzufügen, sondern ist auch flexibel, da es umfassender API ist.

Sehen Sie die vollständige Liste der Funktionen und einige Demo-Videos auf ihrer Website.

Für einfache WPF-Anwendungen, die, die vielleicht verwenden Xcopy installieren, können Sie a href verwenden <= "http://blogs.msdn.com/dotnetinterop/archive/2008/03/28/simple-auto-update-for -wpf-apps.aspx“rel = "nofollow noreferrer"> dieser AppUpdater Modul . Es ist ein Quellenmodul, nur ein paar Zeilen Code, Update-Fähigkeit auf eine einfache WPF-Anwendung hinzuzufügen.

Es ist kostenlos.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top