2011-01-12 9 views

Antwort

0

ClickOnce ist eine schreckliche Lösung, weil es nicht im Hintergrund läuft, sondern nur beim Start überprüft wird und die Startzeit erheblich verlangsamen kann.

Chrome hingegen überprüft regelmäßig, während die Anwendung ausgeführt wird, lädt das Update automatisch herunter und installiert es dann, wenn Sie "OK, warum nicht" sagen.

Es gibt sehr wenig Verzögerung aus der Sicht des Benutzers, und das Zeug tuckert einfach weiter.

Shadow Copy wird Ihre beste Wette sein. Sie sollten ein zeitgesteuertes Ereignis schreiben, das regelmäßig einen Webserver auf aktualisierte Komponenten prüft und diese bei Bedarf herunterlädt. Die Schattenkopie ist die Art, sie zu ersetzen.

Das Design Ihres Systems für Modularität hilft auch - anstatt jede einzelne Datei, die an der Ausführung Ihrer Anwendung beteiligt ist, herunterzuladen, können Kernbereiche unabhängig voneinander aktualisiert werden, wodurch die Nutzlast für den Endbenutzer reduziert wird Zeit, die sie Ihre Updates herunterladen.

Für eine extremere Lösung bieten verschiedene Anbieter Update-Dienste wie InstallShield.

+3

ClickOnce kann so eingerichtet werden, dass nach dem Start der Anwendung nach Aktualisierungen gesucht wird. Sie können sogar die API verwenden, um alle diese Schritte manuell durchzuführen. – ZippyV

+0

Ich bin mir noch nicht sicher über die ShadowCopy. Sie könnten beispielsweise einen Ordner haben, in dem Sie die neuesten DLLs aktualisieren und sie beim Beenden der Anwendung über die alten DLLs kopieren. Aber ich werde auf jeden Fall die ShadowCopy überprüfen! ClickOnce scheint in Ordnung, aber es erfordert Bestätigung des Benutzers, um die Updates zu installieren, die genau das ist, was ich versuche zu vermeiden. Google hat tatsächlich einen Prozess in Windows (im Falle von Windows), der nach Updates sucht und die korrekten Dateien aktualisiert: http://googlesystem.blogspot.com/2009/07/google-update-always-running-in. html. – Peter

1

Ja. Sie können entweder ClickOnce verwenden oder Sie können ShadowCopying verwenden.

Hier ist ein Beispiel für ShadowCopying mit guter Beschreibung, die ein Beispiel eines Webservers zeigt, aber die gleiche Technik kann auf eine Desktop-Anwendung angewendet werden. Ein anderes gutes Beispiel ist here.