Udostępnij za pośrednictwem


Wybieranie strategii aktualizacji ClickOnce

Technologia ClickOnce może dostarczać automatyczne aktualizacje aplikacji.Aplikacja ClickOnce co jakiś czas odczytuje swój plik manifestu wdrożenia, aby sprawdzić, czy są dostępne aktualizacje aplikacji.Jeśli są dostępne, jest pobierana i uruchamiana nowa wersja aplikacji.W celu zwiększenia wydajności pobierane są tylko pliki, które uległy zmianie.

Podczas projektowania aplikacji ClickOnce należy ustalić strategię, jakiej aplikacja będzie używać w celu sprawdzania, czy są dostępne aplikacje.Istnieją trzy podstawowe strategie, których można użyć: sprawdzanie, czy są dostępne aktualizacje podczas uruchamiania aplikacji, sprawdzanie, czy są dostępne aktualizacje po uruchomieniu aplikacji (za pomocą wątku działającego w tle) oraz utworzenie interfejsu użytkownika do obsługi aktualizacji.

Ponadto można określić, jak często aplikacja będzie sprawdzać, czy są dostępne aplikacje, oraz że aktualizacje są wymagane.

[!UWAGA]

Aktualizacje aplikacji wymagają łączności sieciowej.W przypadku braku połączenia sieciowego aplikacja zostanie uruchomiona bez sprawdzania, czy są dostępne aktualizacje, niezależnie od wybranej strategii aktualizacji.

[!UWAGA]

W programach .NET Framework 2.0 i .NET Framework 3.0 niezależnie od tego kiedy aplikacja sprawdza, czy są dostępne aktualizacje (przed lub po uruchomieniu), lub czy są w tym celu używane interfejsy API System.Deployment.Application, w manifeście wdrożenia musi być ustawiony element deploymentProvider.Element deploymentProvider odpowiada polu Lokalizacja aktualizacji w oknie dialogowym Aktualizacje na karcie Publikuj w programie Visual Studio.Ta reguła przestała obowiązywać w programie .NET Framework 3.5.Aby uzyskać więcej informacji, zobacz Wdrażanie technologii ClickOnce do testowania i obsługi serwerów produkcyjnych bez ponownego podpisywania.

Sprawdzanie, czy są dostępne aktualizacje, po uruchomieniu aplikacji

Gdy jest używana ta strategia, aplikacja będzie podejmować próby zlokalizowania i odczytania pliku manifestu wdrożenia w tle, podczas gdy inne jej funkcje będą normalnie działać.Jeśli będzie dostępna aktualizacja, po następnym uruchomieniu aplikacji użytkownik będzie monitowany o pobranie i zainstalowanie aktualizacji.

Ta strategia sprawdza się najlepiej w przypadku połączeń sieciowych o niskiej przepustowości lub większych aplikacji, które mogą wymagać pobierania dużych plików.

Aby włączyć tę strategię aktualizacji, kliknij pozycję Po uruchomieniu aplikacji w sekcji Wybierz, kiedy aplikacja powinna sprawdzać, czy dostępne są aktualizacje w oknie dialogowym Aktualizacje aplikacji.Następnie określ interwał aktualizacji w sekcji Określ, jak często aplikacja powinna sprawdzać, czy są dostępne aktualizacje.

Efekt jest taki sam, jak efekt zmiany wartości elementu Update w manifeście wdrożenia:

   <!-- When to check for updates -->
   <subscription>
      <update>
         <expiration maximumAge="6" unit="hours" />
      </update>
   </subscription>

Sprawdzanie, czy są dostępne aktualizacje, przed uruchomieniem aplikacji

Strategia domyślna polega na próbie zlokalizowania i przeczytania pliku manifestu wdrożenia przed uruchomieniem aplikacji.Gdy jest używana ta strategia, aplikacja będzie podejmować próby zlokalizowania i odczytania pliku manifestu wdrożenia za każdym razem, gdy użytkownik uruchomi aplikację.Jeśli będzie dostępna aktualizacja, zostanie ona pobrana i uruchomiona; w przeciwnym razie zostanie uruchomiona dotychczasowa wersja aplikacji.

Ta strategia sprawdza się najlepiej w przypadku połączeń sieciowych o wysokiej przepustowości; opóźnienia w uruchamianiu aplikacji mogą być nieakceptowalnie długie w przypadku połączenia o niskiej przepustowości.

Aby włączyć tę strategię aktualizacji, kliknij pozycję Przed uruchomieniem aplikacji w sekcji Wybierz, kiedy aplikacja powinna sprawdzać, czy dostępne są aktualizacje w oknie dialogowym Aktualizacje aplikacji.

Efekt jest taki sam, jak efekt zmiany wartości elementu Update w manifeście wdrożenia:

   <!-- When to check for updates -->
   <subscription>
      <update>
         <beforeApplicationStartup />
      </update>
   </subscription>

Określanie, że aktualizacje są wymagane

Możliwe są sytuacje, w których autor aplikacji będzie wymagał, aby użytkownicy używali zaktualizowanej wersji aplikacji.Na przykład może to być spowodowane wprowadzeniem zmian w zasobie zewnętrznym, takim jak usługa sieci Web, które uniemożliwią poprawne działanie wcześniejszych wersji aplikacji.W takim przypadku należy oznaczyć aktualizację jako wymaganą i uniemożliwić użytkownikom uruchamianie wcześniejszych wersji.

[!UWAGA]

Co prawda można wymagać aktualizacji, używając innych strategii aktualizacji, ale tylko wybranie opcji Przed uruchomieniem aplikacji gwarantuje, że nie będzie można uruchomić starszej wersji.Gdy podczas uruchamiania zostanie wykryta obowiązkowa aktualizacja, użytkownik będzie musiał zaakceptować aktualizację lub zamknąć aplikację.

Aby oznaczyć aktualizację jako wymaganą, kliknij pozycję Określ minimalną, wymaganą wersję dla aplikacji w oknie dialogowym Aktualizacje aplikacji, a następnie określ wersję publikacji (Główna, Pomocnicza, Kompilacja, Poprawka), która będzie określać najniższy numer wersji aplikacji, jaką będzie można zainstalować.

Ma to taki sam efekt jak ustawienie atrybutu minimumRequiredVersion w elemencie Deployment w pliku manifestu wdrożenia, na przykład:

   <deployment install="true" minimumRequiredVersion="1.0.0.0">

Określanie interwałów aktualizacji

Można również określić, jak często aplikacja sprawdza dostępność aktualizacji.W tym celu należy określić, że aplikacja sprawdza dostępność aktualizacji po uruchomieniu, tak jak opisano w sekcji „Sprawdzanie, czy są dostępne aktualizacje, po uruchomieniu aplikacji” wcześniej w tym temacie.

Aby określić interwał aktualizacji, ustaw właściwości Określ, jak często aplikacja powinna sprawdzać, czy są dostępne aktualizacje w oknie dialogowym Aktualizacje aplikacji.

Ma to taki sam efekt jak ustawienie atrybutów maximumAge i unit w elemencie Update w pliku manifestu wdrożenia.

Na przykład można chcieć, aby sprawdzanie odbywało się przy każdym uruchomieniu aplikacji, raz w tygodniu lub raz w miesiącu.Jeśli w określonym czasie nie będzie dostępne połączenie z siecią, sprawdzanie dostępności aplikacji zostanie wykonane przy następnym uruchomieniu aplikacji.

Dostarczanie interfejsu użytkownika do obsługi aktualizacji

Gdy jest używana ta strategia, deweloper aplikacji dostarcza interfejs użytkownika, który umożliwia użytkownikowi określenie, kiedy lub jak często aplikacja ma sprawdzać dostępność aktualizacji.Na przykład można dostarczyć polecenie „Sprawdź, czy są dostępne aktualizacje” albo okno dialogowe „Ustawienia aktualizacji”, w którym będzie można wybrać różne interwały aktualizacji.Interfejsy API wdrożenia ClickOnce oferują strukturę umożliwiającą zaprogramowanie własnego interfejsu użytkownika do obsługi aplikacji.Aby uzyskać więcej informacji, zobacz omówienie przestrzeni nazw System.Deployment.Application.

Jeśli aplikacja używa interfejsów API wdrożenia do sterowania własną logiką obsługi aktualizacji, należy zablokować sprawdzanie dostępności aktualizacji, tak jak opisano w poniższej sekcji „Blokowanie sprawdzania dostępności aktualizacji”.

Ta strategia sprawdza się najlepiej w sytuacji, gdy są potrzebne różne strategie aktualizacji dla różnych użytkowników.

Blokowanie sprawdzania dostępności aktualizacji

Można także spowodować, że aplikacja nigdy nie będzie sprawdzać dostępności aktualizacji.Na przykład może istnieć prosta aplikacja, która nigdy nie będzie aktualizowana, ale autor zechce skorzystać z zalet łatwej instalacji dostępnej dzięki wdrożeniu ClickOnce.

Sprawdzanie dostępności aktualizacji warto też zablokować, jeśli aplikacja używa interfejsów API wdrożenia do wykonywania własnych aktualizacji — zobacz sekcję „Dostarczanie interfejsu użytkownika do obsługi aktualizacji” wcześniej w tym temacie.

Aby zablokować sprawdzanie aktualizacji, wyczyść pole wyboru Aplikacja powinna sprawdzać czy są dostępne aktualizacje w oknie dialogowym Aktualizacje aplikacji.

Sprawdzanie dostępności aplikacji można też zablokować, usuwając tag <Subscription> z manifestu wdrożenia.

Podniesienie uprawnień i aktualizacje

Jeśli nowa wersja aplikacji ClickOnce wymaga do działania wyższego poziomu zaufania niż poprzednia wersja, technologia ClickOnce będzie monitować użytkownika o udzielenie aplikacji tego wyższego poziomu zaufania.Jeśli użytkownik odmówi udzielenia wyższego poziomu zaufania, aktualizacja nie zostanie zainstalowana.Technologia ClickOnce będzie monitować użytkownika o ponowne zainstalowanie aplikacji, gdy zostanie ona uruchomiona po raz kolejny.Jeśli użytkownik odmówi w tym punkcie udzielenia wyższego poziomu zaufania, a aktualizacja nie będzie oznaczona jako wymagana, zostanie uruchomiona stara wersja aplikacji.Jeśli jednak aktualizacja będzie wymagana, aplikacja nie zostanie uruchomiona ponownie, dopóki użytkownik nie zaakceptuje wyższego poziomu zaufania.

Użytkownicy nie będą monitowani o poziomy zaufania w przypadku użycia zaufanego wdrożenia aplikacji.Aby uzyskać więcej informacji, zobacz Przegląd wdrażania zaufanych aplikacji.

Zobacz też

Zadania

Porady: zarządzanie aktualizacji dla aplikacji ClickOnce

Informacje

System.Deployment.Application

Koncepcje

Wskazówki dotyczące wdrażania ClickOnce

Wybieranie strategii wdrażania ClickOnce

Zabezpieczanie aplikacji ClickOnce

Jak technologia ClickOnce wykonuje aktualizacje aplikacji