Frage

Ich habe eine dreistufigen Anwendung, die in Unternehmensumgebungen installiert ist. Mit jeder Server-Version zu aktualisieren, müssen alle Clients aktualisiert werden, auch. Derzeit biete ich ein MSI-Paket, das automatisch über Active Directory bereitgestellt wird, aber meine Kunden (meist mit 20-300 Benutzer jeweils) scheinen die MSI-Lösung zu hassen, weil es ist

  • Komplizierte, um es (wenig Active Directory Kenntnisse) läuft;
  • Der Update-Prozess kann vom Server nicht ausgelöst werden, wenn eine neue Version erfaßt wird;
  • Kunden können nicht mehrere Versionen des Clients (z 2.3 und 2.4) bei gleichzeitig installieren zu sprechen auf verschiedene Server;
  • Der Update-Prozess selbst nicht immer wie erwartet (manchmal sehr seltsame Verhalten selbst nach ein paar Stunden Heilung)

Ich habe gemacht jetzt ein paar Experimente mit Clickonce, aber auf diese Weise für mich zu unflexibel und zu hart in meinem automatisierten Build-Prozess zu integrieren. Außerdem erzeugt es kryptische Fehlermeldungen, die sicherlich verwirren würden meine Kunden.

würde ich keine Probleme hat, die Update-Logik selbst zu schreiben, aber es ist das Problem, dass die laufenden Nutzer selbst aktualisierende Anwendungen zu Rechten eingeschränkt haben ein Update durchzuführen. Ich habe festgestellt, dass sie in der Lage sind, ihr lokales Anwendungsdatenverzeichnis zu schreiben, aber ich glaube nicht, das der typische Ort sein würde, Anwendungsdateien in installieren.

Sie wissen, einen Weg zu einem Update, dass „einfach funktioniert“?

War es hilfreich?

Lösung

Sie können etwas wiederholen, was Clickonce ist, passen Sie es nur für Ihre Bedürfnisse.

  1. Erstellen Sie eine leichte ausführbare Datei, die ein Netzwerk / Web-Speicherort für Updates überprüft.
  2. Wenn es Updates, kopiert sie lokal und ersetzt die „echten“ Anwendungsdateien.
  3. Es wird mit der "echten" Anwendung.

Der Speicherort für die Anwendungsdateien von Berechtigungen und das Betriebssystem bestimmt werden. Wenn Benutzer nur Schreibzugriff auf eine begrenzte Anzahl von Ordnern haben, dann haben Sie keine andere Wahl, als einen dieser Ordner verwenden. Eine weitere Option ist ein anfängliches Installationspaket bereitzustellen, das die leichte ausführbare und gewähren r / w-Berechtigung für einen bestimmten Ordner wie „C: \ Programme \ MyApp“ installiert. Dieser Ansatz erfordert in der Regel ein Buy-in von IT.

Ich hoffe, das hilft.

Andere Tipps

Es ist wirklich hart, um Ihnen genaue Antworten, weil wichtige Informationen über die Client-Seite Installateur bereitzustellen, die nicht explizit sind. Haben Sie Client-Dateien in Program Files installieren? Dann können Sie Probleme treffen, wenn Benutzer eingeschränkt werden.

Sie glauben nicht, Lokale Anwendungsdaten ein Ordner-Anwendung bereitstellen, aber Google tut. Sein Chrome-Browser installiert, dass die Art und Weise auf Windows, und der automatischen Update-Prozess ist auch unnoticable (das kann schrecklich klingen). Warum also nicht einsetzen Ihre Anwendung in diesem Ordner für eingeschränkte Benutzer? Sie können hier mehr über Chrome Installer finden,

http: // robmensching .com / Blog / Archiv / 2008/09/04 / Dissecting-the-Google-Chrome-setup.aspx

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 zu haben, auf dem niedrigsten Aufwand möglich. Es sollte Ihnen alle Flexibilität, die Sie für alle brauchen, die Sie beschrieben haben.

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.

Wenn Sie nicht wollen, die Benutzer zu viele Rechte zu geben, ist es möglich, einen Windows-Dienst zu schreiben, die auf jedem Computer unter einem Konto mit den entsprechenden Berechtigungen ausgeführt wird, und der die Anwendung aktualisieren, wenn eine neue Version wird zur Verfügung.

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