Sdílet prostřednictvím


ClickOnce a nastavení aplikace

Nastavení aplikace pro model Windows Forms usnadňuje vytváření, ukládání a údržbu vlastních aplikací a uživatelských předvoleb na klientovi. Následující dokument popisuje, jak fungují soubory nastavení aplikace v aplikaci ClickOnce a jak ClickOnce migruje nastavení, když uživatel upgraduje na další verzi.

Níže uvedené informace platí pouze pro výchozího zprostředkovatele nastavení aplikace, LocalFileSettingsProvider třídu. Pokud zadáte vlastního poskytovatele, tento poskytovatel určí, jak ukládá data a jak upgraduje nastavení mezi verzemi. Další informace o poskytovatelích nastavení aplikací najdete v tématu Architektura nastavení aplikace.

Soubory nastavení aplikace

Nastavení aplikace využívá dva soubory: <app.exe.config> a user.config, kde aplikace je název vaší model Windows Forms aplikace. Uživatel.config se vytvoří v klientovi při prvním uložení nastavení s oborem uživatele. <App.exe.config> naproti tomu bude existovat před nasazením, pokud definujete výchozí hodnoty pro nastavení. Visual Studio bude tento soubor automaticky obsahovat, když použijete příkaz Publikovat . Pokud vytvoříte aplikaci ClickOnce pomocí Mage.exe nebo MageUI.exe, musíte zajistit, aby byl tento soubor součástí ostatních souborů vaší aplikace při naplnění manifestu vaší aplikace.

Poznámka:

V clickOnce pro .NET Core 3.1 a .NET 5 nebo novější použijte dotnet-mage.exe místo Mage.exe. Další informace naleznete v tématu ClickOnce pro .NET.

V model Windows Forms aplikaci, která není nasazena pomocí ClickOnce, je soubor app.exe.config> aplikace <uložen v adresáři aplikace, zatímco soubor user.config je uložen ve složce Dokumenty a Nastavení uživatele. V aplikaci <ClickOnce aplikace app.exe.config> žije v adresáři aplikace uvnitř mezipaměti aplikace ClickOnce a user.config žije v adresáři dat ClickOnce pro tuto aplikaci.

Bez ohledu na to, jak nasadíte aplikaci, nastavení aplikace zajišťuje bezpečný přístup pro čtení k souboru app.exe.config> a bezpečný přístup pro čtení a zápis k souboru user.config.<

V aplikaci ClickOnce je velikost konfiguračních souborů používaných nastavením aplikace omezena velikostí mezipaměti ClickOnce. Další informace naleznete v tématu Přehled mezipaměti ClickOnce.

.NET Core a .NET 5+

V současné době musí být sestavení .NET Core, které se má publikovat, podepsáno souborem silného názvu klíče. Pokud není, ApplicationSettingsBase.Upgrade metoda po novém publikování ClickOnce správně nekopíruje nastavení. Ve vlastnostech projektu .NET Core můžete zadat použití silného názvu v části Sestavení > silného pojmenování .

Upgrady verzí

Stejně jako každá verze aplikace ClickOnce je izolovaná od všech ostatních verzí, nastavení aplikace pro aplikaci ClickOnce jsou izolována také od nastavení pro jiné verze. Když uživatel upgraduje na novější verzi aplikace, nastavení aplikace porovná nejnovější (číslovaná) nastavení nejnovější verze s nastavením poskytnutým aktualizovanou verzí a sloučí nastavení do nové sady souborů nastavení.

Následující tabulka popisuje, jak se nastavení aplikace rozhodne, která nastavení se mají kopírovat.

Typ změny Akce upgradu
Nastavení přidané do <souboru app.exe.config> Nové nastavení se sloučí do souboru app.exe.config> aktuální verze<.
Nastavení odebrané z <app.exe.config> Původní nastavení se odebere z souboru app.exe.config> aktuální verze.<
Výchozí nastavení se změnilo; Místní nastavení je stále nastavené na původní výchozí hodnotu v souboru user.config. Nastavení se sloučí do souboru user.config aktuální verze s novou výchozí hodnotou.
Výchozí nastavení se změnilo; nastavení nastavené na jiné než výchozí nastavení v souboru user.config Nastavení se sloučí do souboru user.config aktuální verze s nezachovanou výchozí hodnotou.

Pokud jste vytvořili vlastní třídu obálky nastavení aplikace a chcete přizpůsobit logiku aktualizace, můžete přepsat metodu Upgrade .

ClickOnce a nastavení roamingu

ClickOnce nefunguje s nastavením roamingu, což umožňuje, aby vás soubor nastavení sledoval napříč počítači v síti. Pokud potřebujete nastavení roamingu, budete muset buď implementovat zprostředkovatele nastavení aplikace, který ukládá nastavení přes síť, nebo vyvíjet vlastní třídy nastavení pro ukládání nastavení na vzdáleném počítači. Další informace o poskytovatelích nastavení najdete v tématu Architektura nastavení aplikace.