Sdílet prostřednictvím


Volba 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, stáhne se a spustí nová verze aplikace. Z důvodu efektivity se stáhnou jenom soubory, které se změnily.

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

Kromě toho můžete určit, jak často bude aplikace kontrolovat aktualizace, a můžete provádět požadované aktualizace.

Poznámka:

Aktualizace aplikací vyžadují síťové připojení. Pokud síťové připojení není k dispozici, aplikace se spustí bez kontroly aktualizací bez ohledu na zvolenou strategii aktualizace.

Poznámka:

V rozhraní .NET Framework 2.0 a .NET Framework 3.0 musíte nastavit deploymentProvider v manifestu nasazení pokaždé, když vaše aplikace kontroluje aktualizace, a to před spuštěním, po spuštění nebo při použití rozhraní API <xref:System.Deployment.Application>. Element deploymentProvider odpovídá v sadě Visual Studio poli Umístění aktualizace v dialogovém okně Aktualizace na kartě Publikovat. Toto pravidlo bylo zmírněno 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

Při použití této strategie se aplikace pokusí vyhledat a přečíst soubor manifestu nasazení na pozadí, když je aplikace spuštěná. Pokud je k dispozici aktualizace, při příštím spuštění aplikace se uživateli zobrazí výzva ke stažení a instalaci aktualizace.

Tato strategie je nejvhodnější pro síťová připojení s nízkou šířkou pásma nebo pro větší aplikace, které můžou vyžadovat zdlouhavé 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 dialogového okna Aktualizace aplikací . 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 zkusit vyhledat a přečíst soubor manifestu nasazení před spuštěním aplikace. Při použití této strategie se aplikace pokusí vyhledat a přečíst soubor manifestu nasazení při každém spuštění aplikace uživatelem. 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 spuštění aplikace může být nepřijatelné u připojení s nízkou šířkou pásma.

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 dialogového okna Aktualizace aplikací .

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 je kontrola aktualizací před spuštěním aplikace jedinou podporovanou možností aktualizace.

Nastavte aktualizace jako povinné

Může se stát, že budete chtít, aby uživatelé spustili aktualizovanou verzi aplikace. Můžete například provést změnu externího prostředku, jako je webová služba, která by zabránila správnému fungování starší verze aplikace. V takovém případě byste chtěli aktualizaci označit jako požadovanou a zabránit uživatelům ve spuštění předchozí 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, uživatel musí buď přijmout aktualizaci, nebo zavřít aplikaci.

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ě Aktualizace aplikací 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 aplikace kontroluje aktualizace. Chcete-li to provést, určete, že aplikace hledá aktualizace po spuštění, jak je popsáno v části "Kontrola aktualizací po spuštění aplikace" dříve 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 jednotkyelementu Update v manifestu nasazení.

Můžete například chtít zkontrolovat pokaždé, když se aplikace spustí, nebo jednou týdně nebo jednou měsíčně. Pokud v zadaném čase není k dispozici síťové připojení, provede 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žití této strategie poskytuje vývojář aplikací uživatelské rozhraní, které uživateli umožňuje zvolit, kdy nebo jak často bude aplikace kontrolovat aktualizace. Můžete například zadat příkaz Vyhledat aktualizace nyní nebo dialogové okno Nastavení aktualizace, které má volby pro různé intervaly aktualizace. Rozhraní API pro nasazení ClickOnce poskytují architekturu pro programování vlastního uživatelského rozhraní aktualizace. Pro více informací viz System.Deployment.Application jmenný prostor.

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 vaše aplikace používá rozhraní API pro nasazení k řízení vlastní logiky aktualizace, měli byste zablokovat kontrolu aktualizací, jak je popsáno v části Blokování kontroly aktualizací v následující části.

Tato strategie funguje nejlépe, když potřebujete různé strategie aktualizace pro různé uživatele.

Blokování kontroly aktualizací

Je také možné zabránit tomu, aby vaše aplikace někdy kontrolovala aktualizace. 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 vyhledat aktualizace v dialogovém okně Aktualizace aplikací.

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 aplikaci udělit tuto vyšší úroveň důvěryhodnosti. Pokud uživatel odmítne udělit vyšší úroveň důvěryhodnosti, aktualizace se nenainstaluje. ClickOnce zobrazí uživateli výzvu k opětovné instalaci aplikace při dalším restartování. Pokud uživatel v tomto okamžiku odmítne udělit vyšší úroveň důvěryhodnosti a aktualizace se neoznačí jako povinná, spustí se stará verze aplikace. Pokud je však aktualizace požadovaná, aplikace se znovu nespustí, dokud uživatel přijme vyšší úroveň důvěryhodnosti.

Pokud použijete nasazení důvěryhodné aplikace, nezobrazí se žádná výzva k nastavení úrovní důvěryhodnosti. Další informace naleznete v tématu Přehled nasazení důvěryhodné aplikace.