Jak najlepiej wdrożyć aktualizacje oprogramowania w systemie windows? [zamknięte]

Chcę zaimplementować system "automatycznej aktualizacji" dla aplikacji windows. W tej chwili częściowo ręcznie tworzę "appcast" , który mój program sprawdza i powiadamia użytkownika, że nowa wersja jest dostępna. (Używam NSIS dla moich instalatorów).

Czy jest jakieś oprogramowanie, z którego mogę korzystać, które obsłuży "automatyczną" część aktualizacji, być może podobną do Sparkle na Macu? Jakieś problemy/pułapki, których powinienem być świadomy?

Author: dF., 2008-08-31

10 answers

Nie ma rozwiązania tak gładkiego jak Sparkle (o którym wiem).

Jeśli potrzebujesz łatwego sposobu wdrażania i aktualizacji aplikacji, ClickOnce jest opcją. Niestety, jest nieelastyczny (np. brak instalacji na maszynę zamiast na użytkownika), nieprzezroczysty (masz bardzo mały wpływ i przejrzystość i kontrolę nad tym, jak działa jego wdrożenie) i Niestandardowy (ścieżki, w których przechowuje zainstalowaną aplikację, są niepodobne do niczego innego w systemie Windows).

Znacznie bliżej to, o co prosisz, to ClickThrough , projekt poboczny WiX , ale nie jestem pewien, czy nadal jest w fazie rozwoju (jeśli tak jest, powinni być o tym jaśniejsi...) - i w każdym razie użyłby MSI, a nie NSIS.

Prawdopodobnie najlepiej będzie, jeśli sam coś wykręcisz. Chciałbym zobaczyć błyszczący Projekt Dla Windows, ale wydaje się, że nikt nie dał mu do tej pory szansę.

 6
Author: Sören Kuklau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-31 19:10:46

Jest teraz port Windows Sparkle, zobacz http://winsparkle.org .

 12
Author: Václav Slavík,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-20 16:54:16

Google Chrome auto-update bazuje na Omaha:

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

Ich przegląd ma świetny dział na temat tego, dlaczego było to potrzebne:

Przeglądarka zazwyczaj monitowała użytkownika długą serią technicznych, mylących i przerażających okien dialogowych, starając się przekonać użytkownika, aby nie instalował. Następnie użytkownik został poproszony o Kreator pełen wyborów, które nie muszą lub nie wiedzą, jak się zdecydować. Czynniki te w połączeniu tworzą złe wrażenia użytkownika i duży spadek-off podczas procesu instalacji aplikacji

 5
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-14 14:22:59

To dobry pomysł, aby użyć rozwiązania innej firmy, bo autoupdates może być ból, zwłaszcza z Windows Vista / 7 (UAC). Jeśli to coś warte, produkt, którego używa moja firma to AutoUpdate+ i wydaje się działać dość dobrze.

 4
Author: LoneRanger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-20 20:39:55

Dla. NET, jakiś czas temu Microsoft Patterns + Practices opublikował Application Updater Block. To było (moim zdaniem) raczej przesadne i przerobione, ale wykonało pracę całkiem dobrze.

W istocie używał "stub loader" do sprawdzania manifestu i usługi internetowej, aby sprawdzić, czy dostępna jest późniejsza wersja programu niż zainstalowana, a następnie użył technologii BITS background downloader do pobrania nowej wersji, jeśli była dostępna na serwerze.

Once the nowa wersja została pobrana i zainstalowana (z. NET jest to tak proste, jak xcopy do odpowiedniego folderu), aplikacja będzie aktualizować manifest. Przy następnym załadowaniu programu zostanie uruchomiona nowa wersja.

Chociaż Kod Patterns + Practices jest specyficzny dla. Net, nie ma tam nic, czego nie można skopiować do non-.NET aplikacji, zwłaszcza jeśli masz możliwość cichego uruchamiania procesu instalacji w tle.

 3
Author: Jeremy McGee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-31 19:04:09

Zadałem podobne pytanie. Kliknij link, aby zobaczyć odpowiedzi. Self Updating

 3
Author: Mike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:01

Jeśli Twoja aplikacja jest napisana w. Net, możesz spróbować ClickOnce. Jednak przy użyciu tego podejścia trudno jest wykonywać czynności administracyjne lub niestandardowe podczas instalacji.

 2
Author: tbreffni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-31 19:02:19

WyUpdate wygląda naprawdę ładnie. Zobacz film tutaj: http://wyday.com/wybuild/help/automatic-updates/

 2
Author: yarone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-12 07:28:13

Dla aplikacji. NET warto przyjrzeć się NetSparkle , wariantowi Sparkle dla programów.NET. Jest całkiem nowy (od 2011 roku) i rozwijany aktywnie.

 1
Author: Helge Klein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-05 07:44:31

Właśnie przyszedłem z odpowiedzi na moje własne pytanie na ten sam temat-wymieniam jeszcze jedno update solution w moim question. Używa programu stub loader i pliku xml, aby wskazać najnowszy plik wykonywalny.

 0
Author: Dave Arkell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:05