Výběr strategie aktualizace ClickOnce

ClickOnce může poskytovat automatické aktualizace aplikací. Aplikace ClickOnce pravidelně čte soubor manifestu nasazení a zjišťuje, jestli jsou k dispozici aktualizace aplikace. Pokud je k dispozici nová verze aplikace, je stažena a spuštěna. Z důvodu efektivity budou staženy pouze soubory, které byly změněny.

Při navrhování aplikace ClickOnce musíte určit, jakou strategii bude aplikace používat ke kontrole dostupných aktualizací. Můžete použít tři základní strategie: kontrolu aktualizací při spuštění aplikace, kontrolu aktualizací po spuštění aplikace (spuštěno jako vlákno na pozadí) nebo poskytnutí uživatelského rozhraní pro aktualizace.

Kromě toho můžete určit, jak často bude aplikace aktualizace vyhledávat, a aktualizace můžete nastavit jako povinné.

Poznámka:

Aktualizace aplikace vyžadují připojení k síti. Pokud není k dispozici síťové připojení, bude aplikace spuštěna bez kontroly aktualizací, bez ohledu na vybranou strategii aktualizace.

Poznámka:

V rozhraní .NET Framework 2.0 a .NET Framework 3.0 je nutné deploymentProvider nastavit v manifestu nasazení vždy, když vaše aplikace kontroluje aktualizace, před spuštěním nebo po spuštění nebo pomocí <rozhraní xref:System.Deployment.Application> API. Element deploymentProvider odpovídá v sadě Visual Studio poli Aktualizovat umístění v dialogovém okně Aktualizace na kartě Publikovat. Toto pravidlo je uvolněné v rozhraní .NET Framework 3.5. Další informace naleznete v tématu Nasazení aplikací ClickOnce pro testování a produkční servery bez nutnosti rezignovat.

Kontrola aktualizací po spuštění aplikace

Pomocí této strategie se aplikace pokusí po spuštění vyhledat a přečíst soubor manifestu nasazení na pozadí. Pokud je k dispozici aktualizace, bude při dalším spuštění aplikace uživatel vyzván ke stažení a instalaci aktualizace.

Tato strategie je nejvhodnější pro síťová připojení s nízkou šířkou pásma nebo v případě větších aplikací, které mohou vyžadovat dlouhé stahování.

Chcete-li tuto strategii aktualizace povolit, klepněte na tlačítko Po spuštění aplikace v části Zvolit, kdy má aplikace vyhledat aktualizace oddílu aplikace Aktualizace dialogového okna. Potom v části Určete, jak často má aplikace kontrolovat aktualizace.

To je stejné jako změna elementu Update v manifestu nasazení následujícím způsobem:

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

Kontrola aktualizací před spuštěním aplikace

Výchozí strategií je vyhledání a přečtení souboru manifestu nasazení před spuštěním aplikace. Pomocí této strategie se aplikace pokusí vyhledat a přečíst soubor manifestu nasazení pokaždé, kdy uživatel spustí aplikaci. Pokud není dostupná aktualizace, spustí se stávající verze aplikace. Pokud je požadovaná aktualizace dostupná, stáhne se a spustí. Pokud je aktualizace k dispozici, ale nevyžaduje se, uživatel si zvolí, jestli se má upgradovat nebo spustit stávající verzi.

Tato strategie je nejvhodnější pro síťová připojení s velkou šířkou pásma; zpoždění při spouštění aplikace může být v případě připojení s nízkou šířkou pásma nepřijatelně dlouhé.

Chcete-li tuto strategii aktualizace povolit, klepněte na tlačítko Před spuštěním aplikace v části Zvolit, kdy má aplikace vyhledat aktualizace oddílu aplikace Aktualizace dialogového okna.

To je stejné jako změna elementu Update v manifestu nasazení následujícím způsobem:

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

Poznámka:

U aplikací .NET Core 3.1 a .NET 5 a novějších aplikací je jedinou podporovanou možností aktualizace.

Vyžadovat aktualizace

Mohou nastat situace, kdy požadujete, aby uživatelé spouštěli aktualizovanou verzi aplikace. Například můžete provést změnu externího prostředku, jako jsou webové služby, které by omezily správnou funkčnost starší verze aplikace. V tomto případě budete pravděpodobně chtít nastavit aktualizaci jako povinnou a zabránit uživatelům ve spouštění starší verze.

Poznámka:

I když můžete vyžadovat aktualizace pomocí ostatních strategií aktualizace, kontrola Před spuštěním aplikace je jediným způsobem, jak zaručit, že starší verzi nelze spustit. Pokud je při spuštění zjištěna povinná aktualizace, musí uživatel aktualizaci přijmout, nebo musí aplikaci ukončit.

Chcete-li označit aktualizaci jako požadovanou, klepněte na tlačítko Zadat minimální požadovanou verzi pro tuto aplikaci v dialogovém okně Aplikace Aktualizace a potom zadejte verzi publikování (hlavní, podverze, sestavení, revize), která určuje nejnižší číslo verze aplikace, kterou lze nainstalovat.

Je to stejné jako nastavení atributu minimumRequiredVersion elementu Deployment v manifestu nasazení, například:

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

Zadání intervalů aktualizace

Můžete také určit, jak často bude aplikace ověřovat aktualizace. Chcete-li toto nastavení provést, zadejte, aby aplikace vyhledávala aktualizace po spuštění, jak je popsáno v oddílu „Kontrola aktualizací po spuštění aplikace“ výše v tomto tématu.

Chcete-li určit interval aktualizace, nastavte, jak často má aplikace kontrolovat vlastnosti aktualizací v dialogovém okně Aktualizace aplikace.

Je to stejné jako nastavení atributu maximumAge a jednotky elementu Update v manifestu nasazení.

Kontrolu můžete provádět například při každém spuštění aplikace, nebo jedenkrát za týden, nebo jednou za měsíc. Pokud v určený čas není k dispozici síťové připojení, provádí se kontrola aktualizace při příštím spuštění aplikace.

Poznámka:

V ClickOnce pro .NET Core a .NET 5 nebo novější není tato funkce podporována. Další informace naleznete v tématu ClickOnce pro .NET.

Poskytnutí uživatelského rozhraní pro aktualizace

Při používání této strategie poskytne vývojář aplikace uživatelské rozhraní, které umožňuje uživateli zvolit, kdy nebo jak často bude aplikace vyhledávat aktualizace. Můžete například vytvořit příkaz „Zkontrolovat aktualizace nyní“ nebo dialogové okno „Nastavení aktualizací“ s možnostmi pro různé intervaly aktualizací. Rozhraní API pro nasazení ClickOnce poskytují architekturu pro programování vlastního uživatelského rozhraní aktualizace. Další informace najdete v System.Deployment.Application oboru názvů.

Poznámka:

Třída ApplicationDeployment a rozhraní API v System.Deployment.Application oboru názvů nejsou podporovány v .NET Core a .NET 5 a novějších verzích. V .NET 7 se podporuje nová metoda přístupu k vlastnostem nasazení aplikace. Další informace naleznete v tématu Access ClickOnce vlastnosti nasazení v .NET. .NET 7 nepodporuje ekvivalent metod ApplicationDeployment.

Pokud aplikace používá rozhraní API nasazení pro řízení vlastní logiky aktualizací, měli byste zablokovat kontrolu aktualizací podle postupu popsaného v části „Blokování kontroly aktualizací“ v následujícím oddílu.

Tato strategie funguje nejlépe tehdy, pokud požadujete různé strategie aktualizací pro různé uživatele.

Blokování kontroly aktualizací

Kontrolu aktualizací lze také kompletně zrušit. Můžete mít například jednoduchou aplikaci, která se nikdy neaktualizuje, ale chcete využít výhod snadné instalace poskytované nasazením ClickOnce.

Měli byste také blokovat kontrolu aktualizací, pokud vaše aplikace používá rozhraní API pro nasazení k provádění vlastních aktualizací; Viz část "Poskytnutí uživatelského rozhraní pro aktualizace" dříve v tomto tématu.

Chcete-li blokovat kontrolu aktualizací, zrušte zaškrtnutí políčka Aplikace by měla zkontrolovat aktualizace v dialogovém okně Aplikace Aktualizace.

Kontrolu aktualizací můžete také zablokovat odebráním značky <Subscription> z manifestu nasazení.

Zvýšení oprávnění a aktualizace

Pokud nová verze aplikace ClickOnce vyžaduje, aby běžela vyšší úroveň důvěryhodnosti než předchozí verze, ClickOnce vyzve uživatele a požádá ho, jestli chce, aby byla aplikace udělena této vyšší úrovni důvěryhodnosti. Pokud uživatel odmítne udělit vyšší úroveň důvěryhodnosti, nebude aktualizace nainstalována. ClickOnce zobrazí uživateli výzvu k opětovné instalaci aplikace při dalším restartování. Pokud uživatel v tomto kroku odmítne udělit vyšší úroveň důvěryhodnosti a aktualizace není označena jako povinná, bude spuštěna starší verze aplikace. Pokud je však aktualizace vyžadována, aplikace se nespustí, dokud uživatel nepřijme vyšší úroveň důvěryhodnosti.

Pokud použijete nasazení důvěryhodné aplikace, nebude tato výzva týkající se úrovně důvěryhodnosti zobrazena. Další informace naleznete v tématu Přehled nasazení důvěryhodné aplikace.