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 project vlastnosti, které můžete nastavit v souboru Visual Studio project (například .csproj nebo .vcxproj), abyste mohli přizpůsobit způsob nasazení aplikace, včetně konfigurace automatických inicializátorů.
Automatické inicializátory v Windows App SDK
V Windows App SDK existuje několik rutin, jejichž úlohou je zajistit správné inicializaci modulu Windows App Runtime. 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 výraz inicializátor modulu, když se správně má použít termín automatický inicializátor.
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:
- Automatický inicializátor „Bootstrapper“ (označovaný také jako dynamické závislosti) Tento autoinicializátor volá rozhraní API bootstrapperu při spuštění aplikace. Je vyžadováno pro nebalené aplikace závislé na frameworku, aby bylo zajištěno, že se do grafu balíčků aplikace přidá Windows App Runtime. Informace o aplikacích závislých na architektuře (a samostatných) najdete v tématu Windows App SDK přehled nasazení. 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. Pro samostatně fungující aplikaci nepotřebujete automatický inicializátor bootstrapperu ani dynamických závislostí, protože tyto aplikace nevyužívají framework. - Můžete vyloučit automatický inicializátor bootstrapperu nebo dynamických závislostí ve vašem
.csprojnebo.vcxprojsouboru pomocí<WindowsAppSdkBootstrapInitialize>false</WindowsAppSdkBootstrapInitialize>.
- Pro zabalenou aplikaci nepotřebujete automaticky inicializátor spouštěcího nástroje nebo dynamické závislosti, protože
- Automatický inicializá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, aby samostatná aplikace používala aktivaci Windows Runtime 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 aktualizaci z května 2019 (verze 1903; 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 A/B kontejnerová zařízení ke kontrole chování při 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á Windows App SDK 1.8 nebo novější, automaticky se spustí 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 Auto-initializers v Windows App SDK dříve 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í Windows App SDK 1.8 nebo novější) nepotřebuje balíčky Main/Singleton, potom byste měli zrušit automatické inicializátory Správce nasazení nastavením vlastnosti WindowsAppSdkDeploymentManagerInitialize na false v souboru project vaší aplikace.
Pokud vaše aplikace (pro Windows App SDK 1.8 nebo novější) skutečně 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 project 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 project vaší aplikace. Podrobnosti o automatických inicializátorech v Windows App SDK najdete v předchozí části (výše).
| Název a popis vlastnosti | Hodnoty | Další informace |
|---|---|---|
| AppxPackage. Určuje, jestli je aplikace WinUI zabalená. | false (pro rozbalenou aplikaci) nebo chybí (pro zabalenou aplikaci) | Rozbalení aplikace WinUI |
| EnableMsixTooling. Povolí funkci MSIX pro jeden projekt. | true (pro povolení) nebo chybí (zakázat) | Zabalte svou aplikaci pomocí jednoproduktového MSIXu |
| UseWinUI. Určuje, jestli v aplikaci používáte architekturu uživatelského rozhraní WinUI. | true, nebo chybí (pro false) | WinUI v rámci Windows App SDK (WinUI) |
| WindowsAppSdkBootstrapInitialize. Určuje, zda Windows App SDK využívá automatický inicializátor pro bootstrapper/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 Windows App SDK využívá automatický inicializátor Deployment Manageru. | true (výchozí), false | |
| WindowsAppSDKRuntimePatchLevel1, WindowsAppSDKRuntimePatchLevel2 a WindowsAppSDKDisabledChanges. Určuje, zda Windows App SDK využívá automatický inicializátor pro kompatibilitu a konfiguruje jakékoli požadované možnosti kompatibility pro fungování modulu runtime Windows App v rámci změn přidaných v servisních aktualizacích. | Různé nebo chybějící (pro deaktivaci automatického inicializátoru) | RuntimeCompatibilityOptions |
| WindowsAppSdkSelfContained. Určuje, jestli je aplikace nasazená samostatně. | true, nebo chybí (pro false) | průvodce nasazením Windows App SDK pro samostatné aplikace |
| WindowsAppSdkUndockedRegFreeWinRTInitialize. Určuje, zda Windows App SDK využívá autoicializátor aktivace bez registrace. | true (výchozí hodnota pro spustitelné soubory), false (výchozí hodnota pro nespustitelné soubory) | Volba odhlášení z automatické podpory UndockedRegFreeWinRT (nebo přihlášení do) |
WindowsPackageType. Nastavení <WindowsPackageType>None</WindowsPackageType> pro rozbalenou aplikaci způsobí, že automatický inicializátor spouštěče nebo dynamických závislostí vyhledá a načte tu verzi 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 souboru .csproj pro project C# WinUI 3, který ukazuje některé z project vlastností 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řte svůj první projekt WinUI (Windows App SDK)
- Zabalte svou aplikaci s použitím jednoho projektu MSIX
- RuntimeCompatibilityOptions
- Použijte runtime Windows App SDK pro aplikace zabalené s externím umístěním nebo nebalené
- průvodce nasazením Windows App SDK pro samostatné aplikace
- přehled nasazení Windows App SDK
- Aplikace pro Windows: balení, nasazení a proces
- WinUI v rámci Windows App SDK
Windows developer