Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje vlastnosti projektu, které můžete nastavit v souboru projektu sady Visual Studio (například .csproj ) .vcxproja přizpůsobit tak způsob nasazení aplikace, včetně konfigurace automatických inicializátorů.
Automatické inicializátory v sadě Windows App SDK
V sadě Windows App SDK existuje několik rutin, jejichž úlohou je zajistit, aby byl modul Windows App Runtime správně inicializován. Tyto rutiny se označují jako automatické inicializátory, protože se spouští automaticky před vstupním bodem vaší aplikace a provádějí inicializaci za vás.
Návod
V případě, že vás zajímají technické podrobnosti. V jazyce C++ se implementuje automatický inicializátor se statickým konstruktorem třídy. V jazyce C# se implementuje automatický inicializátor s inicializátorem modulu .NET. Někdy tedy uslyšíte inicializátor modulu , který se používá, když je správný termín automatickým inicializátorem.
Všechny automatické inicializátory jsou ve výchozím nastavení podmíněné, a to na základě konfigurace balení a nasazení vaší aplikace. Tady jsou podrobnosti o nich:
- Autoicializátor bootstrapperu (označovaný také jako dynamické závislosti) Tento automaticky inicializátor volá rozhraní API bootstrapperu automaticky při spuštění aplikace. Vyžaduje se pro aplikace závislé na architektuře, aby se zajistilo, že se prostředí Windows App Runtime přidá do grafu balíčku aplikace. Informace oaplikacích Informace o rozbalených (a zabalených) aplikacích najdete v tématu Aplikace pro Windows: balení, nasazení a zpracování.
- Pro zabalenou aplikaci nepotřebujete automaticky inicializátor spouštěcího nástroje nebo dynamické závislosti, protože
appxmanifest.xmlsoubor vyjadřuje závislost architektury. A pro samostatnou aplikaci nepotřebujete automatické inicializátory bootstrapperu ani dynamické závislosti, protože tyto aplikace architekturu nepoužívají. - Můžete se odhlásit z bootstrapperu nebo dynamických závislostí automaticky inicializátor ve vašem
.csprojnebo.vcxprojsouboru prostřednictvím<WindowsAppSdkBootstrapInitialize>false</WindowsAppSdkBootstrapInitialize>.
- Pro zabalenou aplikaci nepotřebujete automaticky inicializátor spouštěcího nástroje nebo dynamické závislosti, protože
- Autoicializátor Deployment Manageru To se vyžaduje pro zabalené aplikace závislé na architektuře, které využívají hlavní/singletonové funkce (například nabízená oznámení), protože
appxmanifest.xmlsoubor nemůže tyto závislosti vyjádřit.- Pro samostatnou aplikaci nepotřebujete automatický inicializátor Deployment Manageru, protože tyto aplikace nepodporují hlavní nebo singletonové funkce.
- Důležitější informace najdete v části Autoicializátor Deployment Manageru dále v tomto tématu.
- Automatická inicializátor aktivace bez registrace To se vyžaduje pro samostatnou aplikaci, aby používala aktivaci windows Runtime bez registrace bez registrace založené na manifestu (WinRT) (UndockedRegFreeWinRT), pokud aplikace běží na nižší úrovni na verzi operačního systému starší než Windows 10. května 2019 Update (verze 1903; kód s názvem 19H1).
- Pro aplikace závislé na architektuře a pro samostatné aplikace, které cílí na Windows 10 verze 1903 nebo novější, nepotřebujete automatický inicializátor aktivace bez registrace. Tyto aplikace se mohou odhlásit prostřednictvím
<WindowsAppSdkUndockedRegFreeWinRTInitialize>false</WindowsAppSdkUndockedRegFreeWinRTInitialize>.
- Pro aplikace závislé na architektuře a pro samostatné aplikace, které cílí na Windows 10 verze 1903 nebo novější, nepotřebujete automatický inicializátor aktivace bez registrace. Tyto aplikace se mohou odhlásit prostřednictvím
- Automatický inicializátor kompatibility. To se vyžaduje, aby aplikace používala zařízení pro zahrnutí A/B k řízení chování vydávání servisních verzí. Další informace najdete v tématu RuntimeCompatibilityOptions.
- U aplikací, které nepoužívají zahrnutí A/B (což je výchozí nastavení), nepotřebujete automatický inicializátor kompatibility.
Automatický inicializátor Deployment Manageru
Když se spustí aplikace, která používá sadu Windows App SDK 1.8 nebo novější, spustí se automaticky inicializátor Deployment Manageru ve výchozím nastavení. Ale můžete se z toho odhlásit. Tato část vysvětluje výhody a omezení povolení automatického inicializátoru Deployment Manageru a pomůže vám rozhodnout, zda se chcete odhlásit nebo ne.
Aby vaše aplikace využívala funkce v balíčcích Main/Singleton (například nabízená oznámení): 1. Abyste zajistili nasazení těchto balíčků (protože balíčky Main/Singleton nejsou architektury, ale "hlavní" balíčky, jako jsou aplikace, je nutné použít rozhraní API pro nasazení, aby se tyto balíčky neregistrovaly jako závislosti v manifestu appx vaší aplikace. Místo toho rozhraní API pro nasazení poskytuje funkce pro nasazení těchto balíčků). 2. Vzhledem k 1) vaše aplikace musí inicializovat Správce nasazení tím, že zavolá DeploymentManager.Initialize. Vaše aplikace to může udělat buď automaticky, nebo explicitně, jak uvidíme. 3. Vaše aplikace musí být balíčková aplikace závislá na rozhraní, aby byla závislá na balíčcích Main/Singleton.
Jedním ze způsobů inicializace Správce nasazení je umožnit spuštění automatického inicializátoru Deployment Manageru (viz část Automatické inicializátory v sadě Windows App SDK výše v tomto tématu). Autoicializátor Deployment Manageru za vás volá DeploymentManager.Initialize . Dalším způsobem inicializace Správce nasazení je explicitně voláním DeploymentManager.Initialize.
Pokud vaše aplikace (pomocí sady Windows App SDK 1.8 nebo novější) nepotřebuje balíčky Main/Singleton, měli byste se odhlásit z automatického inicializátoru Deployment Manageru nastavením vlastnosti WindowsAppSdkDeploymentManagerInitialize na false v souboru projektu vaší aplikace.
Pokud vaše aplikace (pomocí sady Windows App SDK 1.8 nebo novější) potřebuje balíčky Main/Singleton, můžete:
- Povolit automatickému inicializátoru Deployment Manageru spuštění (což dělá ve výchozím nastavení)
- nebo se odhlaste z automatického inicializátoru Deployment Manageru nastavením vlastnosti WindowsAppSdkDeploymentManagerInitialize na false v souboru projektu vaší aplikace. Pak byste sami měli explicitně volat DeploymentManager.Initialize.
Důležité
Pro jakýkoli proces spuštěný v AppContainer, pokud způsobíte, že DeploymentManager.Initialize bude volána, pak vaše aplikace musí deklarovat packageManagementomezenou schopnost v manifestu balíčku.
Vlastnosti projektu
V následující tabulce jsou vlastnosti, které můžete nastavit v souboru projektu aplikace. Podrobnosti o automatických inicializátorech v sadě Windows App SDK najdete v předchozí části (výše).
| Název a popis vlastnosti | Hodnoty | Další informace |
|---|---|---|
| AppxPackage. Určuje, jestli je zabalená aplikace WinUI 3 nebo ne. | false (pro rozbalenou aplikaci) nebo chybí (pro zabalenou aplikaci) | Rozbalení aplikace WinUI |
| EnableMsixTooling. Povolí pro projekt funkci MSIX s jedním projektem. | true (pro povolení) nebo chybí (zakázat) | Zabalení aplikace pomocí MSIX s jedním projektem |
| UseWinUI. Určuje, jestli v aplikaci používáte architekturu uživatelského rozhraní WinUI 3. | true nebo chybí (pro nepravda) | WinUI v sadě Windows App SDK (WinUI 3) |
| WindowsAppSdkBootstrapInitialize. Určuje, zda sada Windows App SDK využívá autoicializátor spouštěcího nástroje nebo dynamické závislosti. | true (výchozí hodnota pro spustitelné soubory), false (výchozí hodnota pro nespustitelné soubory) | Odhlášení z automatických inicializátorů (nebo do) |
| WindowsAppSdkDeploymentManagerInitialize. Určuje, zda sada Windows App SDK využívá automatický inicializátor Deployment Manageru. | true (výchozí), false | |
| WindowsAppSDKRuntimePatchLevel1, WindowsAppSDKRuntimePatchLevel2 a WindowsAppSDKDisabledChanges. Určuje, jestli sada Windows App SDK využívá automatický inicializátor kompatibility a nakonfiguruje všechny požadované možnosti kompatibility pro chování prostředí Windows App Runtime přidaných v aktualizacích údržby. | Různé nebo chybějící (zakázání automatického inicializátoru) | RuntimeCompatibilityOptions |
| WindowsAppSdkSelfContained. Určuje, jestli je aplikace nasazená samostatně. | true nebo chybí (pro nepravda) | Průvodce nasazením sady Windows App SDK pro samostatné aplikace |
| WindowsAppSdkUndockedRegFreeWinRTInitialize. Určuje, jestli sada Windows App SDK využívá automaticky inicializátor aktivace bez registrace. | true (výchozí hodnota pro spustitelné soubory), false (výchozí hodnota pro nespustitelné soubory) | Odhlášení z automatické podpory UndockedRegFreeWinRT (nebo do) |
WindowsPackageType. Nastavení <WindowsPackageType>None</WindowsPackageType> nevybalené aplikace způsobí, že autoicializátor spouštěcího nástroje nebo dynamické závislosti vyhledá a načte verzi sady Windows App SDK, která je pro vaši aplikaci nejvhodnější. |
Žádné nebo chybí (zakázání automatického inicializátoru) |
Rozbalení aplikace WinUI Na pozadí a odhlášení z automatických inicializátorů |
Example
Tady je výňatek z typického .csproj souboru pro projekt WinUI 3 jazyka C#, který ukazuje některé vlastnosti projektu z výše uvedené tabulky.
...
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
...
<UseWinUI>true</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
</PropertyGroup>
...
Související témata
- Přehled nasazení
- Vytvoření prvního projektu WinUI 3 (Windows App SDK)
- Zabalení aplikace pomocí MSIX s jedním projektem
- RuntimeCompatibilityOptions
- Použití modulu runtime Windows App SDK pro aplikace zabalené na externím místě nebo nezabalené
- Průvodce nasazením sady Windows App SDK pro samostatné aplikace
- Přehled nasazení sady Windows App SDK
- Aplikace pro Windows: balení, nasazení a proces
- WinUI v sadě Windows App SDK (WinUI 3)
Windows developer