23 Stimmen

Wie implementiert man am besten Software-Updates unter Windows?

Ich möchte ein "automatisches Update"-System für eine Windows-Anwendung implementieren. Im Moment erstelle ich halb-manuell ein "appcast" die mein Programm überprüft und den Benutzer benachrichtigt, dass eine neue Version verfügbar ist. (Ich verwende NSIS für meine Installateure).

Gibt es eine Software, die ich verwenden kann, um den "automatischen" Teil der Aktualisierungen zu übernehmen, vielleicht ähnlich wie Funkeln auf dem Mac? Gibt es Probleme/Fallstricke, die ich beachten sollte?

12voto

Václav Slavík Punkte 6036

Es gibt jetzt eine Windows-Portierung von Sparkle, siehe http://winsparkle.org .

7voto

Sören Kuklau Punkte 18696

Es gibt keine Lösung, die so reibungslos funktioniert wie Sparkle (soweit ich weiß).

Wenn Sie ein einfaches Mittel zur Bereitstellung und Aktualisierung von Anwendungen benötigen, ClickOnce ist eine Option. Leider ist sie unflexibel (z. B. keine Installation pro Rechner statt pro Benutzer), undurchsichtig (Sie haben sehr wenig Einfluss, Klarheit und Kontrolle darüber, wie die Bereitstellung tatsächlich funktioniert) und nicht standardisiert (die Pfade, in denen die installierte Anwendung gespeichert wird, sind anders als alles andere unter Windows).

Viel näher an Ihrer Frage wäre ClickThrough , ein Nebenprojekt von WiX aber ich bin mir nicht sicher, ob es sich noch in der Entwicklung befindet (falls ja, sollten sie das deutlicher sagen ) - und es würde auf jeden Fall MSI verwenden, nicht NSIS.

Wahrscheinlich ist es am besten, wenn du etwas auf eigene Faust machst. Ich würde gerne ein Sparkle-ähnliches Projekt für Windows sehen, aber niemand scheint es bisher versucht zu haben.

5voto

Mark Punkte 4446

Die automatische Aktualisierung von Google Chrome basiert auf Omaha:

http://code.google.com/p/omaha/

Ihre Übersicht enthält einen ausführlichen Abschnitt über die Gründe für die Notwendigkeit der Maßnahme:

Der Browser forderte den Benutzer in der Regel mit einer langen Reihe technischer, verwirrender und beängstigender Dialoge auf, die alle versuchten, den Benutzer davon zu überzeugen, die Software nicht zu installieren. Dann wurde der Benutzer mit einem Assistenten voller Auswahlmöglichkeiten konfrontiert, die er nicht brauchte oder nicht wusste, wie er sich entscheiden sollte. Diese Faktoren führten zu einem schlechten Benutzererlebnis und einem hohen Abbruch der App-Installation.

4voto

LoneRanger Punkte 1839

Es ist eine gute Idee, eine Lösung eines Drittanbieters zu verwenden, da automatische Aktualisierungen ein Problem darstellen können, insbesondere unter Windows Vista/7 (UAC). Das Produkt, das mein Unternehmen verwendet, ist AutoUpdate+ und es scheint recht gut zu funktionieren.

3voto

Jeremy McGee Punkte 24034

Für .NET veröffentlichte Microsoft Patterns + Practices vor einiger Zeit die Anwendungs-Updater-Block . Das war (meiner Meinung nach) ziemlich aufgeblasen und übertechnisiert, aber es hat seine Aufgabe ganz gut erfüllt.

Im Wesentlichen wurde ein "Stub Loader" verwendet, um ein Manifest und einen Webdienst zu überprüfen, um festzustellen, ob eine neuere Version des Programms als die installierte verfügbar war, und dann die BITS-Hintergrund-Downloader-Technologie verwendet, um eine neue Version herunterzuladen, wenn eine auf dem Server verfügbar war.

Sobald die neue Version heruntergeladen und installiert wurde (mit .NET ist dies so einfach wie ein xcopy in den entsprechenden Ordner), würde die Anwendung das Manifest aktualisieren. Wenn das Programm das nächste Mal geladen wird, wird die neue Version gestartet.

Der Code von Patterns + Practices ist zwar .NET-spezifisch, aber es gibt nichts, was nicht auch für eine Nicht-.NET-Anwendung kopiert werden könnte, insbesondere wenn Sie die Möglichkeit haben, den Installationsprozess im Hintergrund auszuführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X