2014-03-05 4 views
8

Ich habe eine C# -Anwendung und ich bin hauptsächlich damit beschäftigt, automatische Updates für Clients, die meine Software laufen, auszugeben. Diese Aktualisierungen können von einer neuen/gepatchten DLL bis hin zur neuen Ressourcendatei erfolgen.Gibt es ein NuGet-Äquivalent für die Bereitstellung von Inhalten für Endbenutzer?

Ich weiß, ich kann eine ClickOnce-Anwendung erstellen, um einen Teil dorthin zu bekommen, aber es erlaubt nicht viel Kontrolle, wie ich möchte (zum Beispiel möchte ich leicht 3rd Party-Komponenten mit meiner Software "bündeln") oder in der Lage zu sein, dass der Benutzer entscheiden kann, welche Komponenten aktualisiert werden sollen).

Ich sehe, dass Programme wie NotePad ++ einen dedizierten Updater haben, aber ich hoffe, dass ich von anderen im Gegensatz zu meinem eigenen Updater von Null aufrüsten kann.

Notepad++ Plugin Manager

Was sind meine Optionen?

+1

Sie können Ihren eigenen NuGet-Feed hosten (oder einfach nur nuget.org verwenden) und die NuGet-Bibliotheken zum Abliefern von Dateien an den Client verwenden. Also das NuGet-Äquivalent ist ... NuGet. –

+0

Wenn ich am Ende war, wurde .bat-Skripte mit meinen Programmen eingeschlossen, die den Server automatisch abfragen würden, um zu sehen, was die neueste Version war. Wenn es eine neuere Version gab, benachrichtigte ich den Benutzer. Wenn der Benutzer die Aktualisierung ausgewählt hat. Ich habe diese .bat-Dateien ausgeführt, um die neue Version herunterzuladen und zu installieren. Wenn jedoch bei der Installation etwas schief ging, wurde der Benutzer abgespritzt. Wenn es einen einfachen Rahmen dafür gäbe, wäre das großartig! – mason

+2

https://chocolatey.org/ – SLaks

Antwort

4

Es gibt ein paar verschiedene, die Sie auschecken können.

Dieser hat über/um eine Weile gesprochen worden, aber ich habe keine Nachricht von Wetter oder nicht, es ist tatsächlich bereit, verwendet werden soll noch

https://github.com/Squirrel/Squirrel.Windows

https://www.nuget.org/packages/NuSelfUpdate/

https://www.nuget.org/packages/NuGetUpdate/

gehört

Ich würde dieses hier empfehlen, als ich das letzte Mal ein Ticket geöffnet habe, hat er es fast sofort angesprochen.

https://www.nuget.org/packages/Sidewinder.Core/

Keiner von ihnen wird eine 100% ige Rückgang der Lösung sein, weil Anwendung Aktualisierung eines dieser Dinge, die zu verallgemeinern schwer.

Für mich, was ich am Ende tun ist eines von zwei Dingen

1) Verwenden Sie http://www.myget.org meine Updates zu hosten, und rollen mein eigenes System, dass Downloads/Neustarts/Updates Dinge.

2) Rollen Sie meine eigene mit einem Komponentenindex auf AWS S3. Das XML listet die Komponenten auf und zeigt auf die URL, um jedes Update zu erhalten. Von dort entscheidet Ihre Anwendung, wie/wann sie gestoppt/aktualisiert/neu gestartet werden soll. Auch

, wenn ich die Hauptanwendung bin Aktualisierung, in der Regel, wie ich es tun (Wenn die Anwendung bereits ausgeführt wird)

  1. prüft für ein Update.
  2. Wenn es ein Update gibt, laden Sie es herunter.
  3. Beim Start der Anwendung lokal nach der Update-Datei suchen.
  4. Wenn es vorhanden ist, installieren Sie es still

Wenn die Anwendung nicht läuft ich tun, um eine Update-Prüfung/download/install auf Start (aber das ist nur, wenn es von entscheidender Bedeutung, dass die Menschen die allerneuste ausgeführt werden).

Am Ende wird keines dieser Frameworks 100% Ihren Bedürfnissen entsprechen, da kein Szenario das gleiche ist, hoffentlich bekommen Sie den größten Teil davon.

2

Aufbau auf SLaks kommentieren.

Chocolatey ist ein Wrapper um nugget für die Installation von Apps, ähnlich wie app-get in der Linux-Welt. Es ist ein Werkzeug, um alle Arten von Installern zu umgehen.

Wenn Ihre Kunden mit der Befehlszeile zufrieden sind, ist chocolatey eine gute Lösung für die Veröffentlichung von Apps.

Die WiX installer beschreibt sich selbst als "Die leistungsfähigste Reihe von Tools zur Verfügung, um Ihre Windows-Installation Erfahrung zu erstellen. Frei und Open Source seit 2004!" Je nachdem, wie anspruchsvoll Sie gehen möchten, können Sie es sich auch anschauen.

Verwandte Themen