Průvodce nasazením Windows App SDK pro zabalené aplikace závislé na architektuře

Tento článek obsahuje pokyny k nasazení zabalených aplikací závislých na architektuře (viz Co je MSIX?), které používají Windows App SDK. Ekvivalentní téma pro další možnosti balení závislé na frameworku je Windows App SDK průvodce nasazením pro aplikace závislé na frameworku balené s externím umístěním nebo nebalené.

Overview

Když ve výchozím nastavení vytvoříte projekt pomocí jedné šablony WinUI 3 v Visual Studio, nakonfiguruje se projekt tak, aby se aplikace sestavila do balíčku MSIX s jedním projektem (viz Balíček aplikace pomocí MSIX s jedním projektem) nebo projekt Windows Application Packaging (viz Nastavení desktopové aplikace pro balení MSIX v Visual Studio). Potom můžete vytvořit balíček MSIX pro vaši aplikaci pomocí pokynů v Balíčkování desktopové nebo UWP aplikace ve Visual Studiu. Po sestavení balíčku MSIX pro aplikaci máte několik možností, jak Spravovat nasazení MSIX.

Další informace o balíčcích, které vaše zabalená aplikace může potřebovat, když používá Windows App SDK, najdete v tématu o architektuře Deployment pro Windows App SDK. Patří sem balíčky Framework, Main a Singleton ; které jsou všechny podepsány a publikovány Společností Microsoft. Nasazení zabalené aplikace má dva hlavní požadavky:

  1. Deploy balíček architektury Windows App SDK.
  2. Zavolejte rozhraní API pro nasazení.

Prerequisites

Nasazení balíčku architektury Windows App SDK

Balíček architektury Windows App SDK obsahuje binární soubory Windows App SDK používané za běhu a instaluje se s vaší aplikací. Architektura má různé požadavky na nasazení pro různé kanály Windows App SDK.

Stabilní verze

Při instalaci stabilní verze balíčku NuGet Windows App SDK do vývojového počítače a vytvoříte projekt pomocí jedné z poskytnutých šablon projektů WinUI, vygenerovaný manifest balíčku obsahuje PackageDependency element, který určuje závislost na balíčku architektury.

Pokud ale balíček aplikace sestavíte ručně pomocí samostatného projektu Windows Vytváření balíčků aplikací, musíte deklarovat PackageReference v souboru Application (package).wapproj, jak je znázorněno níže:

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.260209005">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

Tato závislost balíčku zajišťuje, že se balíček Framework nainstaluje při nasazení aplikace do jiného počítače.

Náhledová verze

Při instalaci verze Preview balíčku NuGet Windows App SDK do vývojového počítače se během sestavování jako závislost balíčku NuGet nasadí verze Preview balíčku architektury Windows App SDK.

Zavolejte nasazovací API

Viz také Initialize Windows App SDK.

Rozhraní API pro nasazení poskytuje balíček frameworku Windows App SDK a je k dispozici v Microsoft.Windows.ApplicationModel.WindowsAppRuntime oboru názvů. Aplikační model Windows nepodporuje deklarování závislosti na balíčcích Main a Singleton. Rozhraní API pro nasazení se proto vyžaduje z těchto důvodů:

  1. Nasazení balíčku Singleton pro funkce, které nejsou v balíčku Framework (například nabízená oznámení).
  2. Nasazení hlavního balíčku, který umožňuje automatické aktualizace balíčku Framework z Microsoft Storu.

Pro zabalené aplikace, které nejsou distribuovány prostřednictvím Storu, zodpovídáte za distribuci balíčku Framework jako vývojář. Doporučujeme volat rozhraní API pro nasazení, aby byly doručeny jakékoli kritické servisní aktualizace. Všimněte si, že pro použití funkcí mimo balíček framework (například nabízená oznámení) musí být nasazen balíček Singleton (to se dá provést pomocí rozhraní API pro nasazení nebo redistribuací balíčků MSIX pomocí vlastní metody instalace).

Important

Pouze zabalené aplikace s úplným vztahem důvěry nebo s omezenými oprávněními packageManagement mají oprávnění k použití rozhraní API pro nasazování k instalaci závislostí balíčku Main a Singleton.

Po inicializaci procesu aplikace byste měli volat rozhraní API pro nasazení, ale ještě předtím, než vaše aplikace použije funkce modulu runtime Windows App SDK, které využívají balíček Singleton (například push oznámení). Hlavní metody rozhraní API pro nasazení jsou statické metody GetStatus a Initialize třídy DeploymentManager .

  • Metoda GetStatus vrátí aktuální stav nasazení modulu runtime Windows App SDK, který je aktuálně načten. Tuto metodu použijte k určení, jestli je potřeba nainstalovat balíčky runtime Windows App SDK před tím, než může aktuální aplikace používat Windows App SDK funkce.
  • Metoda Initialize ověřuje, jestli jsou všechny požadované balíčky přítomné na minimální verzi, kterou potřebuje modul runtime Windows App SDK, který je aktuálně načtený. Pokud nějaké závislosti balíčku chybí, metoda se pokusí zaregistrovat tyto chybějící balíčky. Počínaje Windows App SDK 1.1 podporuje metoda Initialize také možnost vynutit nasazení balíčků modulu runtime Windows App SDK. Tím se vypnou všechny procesy pro balíčky Main a Singleton Runtime, a tím přeruší jejich služby (například push oznámení nebudou během této doby doručována). Inicializovat byste měli jenom jednou. V Visual Studio nemusíte volat Initialize pro aplikace nasazené prostřednictvím příkazů Start bez ladění a Start Debugging.

Important

Výchozí hodnota vlastnosti Visual Studio <WindowsAppSdkDeploymentManagerInitialize> je true. Pokud tedy chcete volat DeploymentManager.Initialize explicitně, nastavte <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> v souboru projektu Visual Studio.

Ukázková aplikace pro nasazení API

Další pokyny k používání metod GetStatus a Initialize třídy DeploymentManager najdete v dostupné ukázkové aplikaci.

Řešení chyb instalace

Pokud rozhraní API pro nasazení při instalaci balíčků modulu runtime Windows App SDK dojde k chybě, vrátí kód chyby, který tento problém popisuje.

Následující tabulka uvádí běžné kódy chyb z rozhraní API pro nasazení a jejich typické příčiny:

Kód chyby Name Obvyklá příčina
0x80070005 ACCESS_DENIED Aplikace není plně důvěryhodná nebo nemá omezenou schopnost packageManagement. Spusťte zvýšenou úroveň nebo přidejte požadovanou funkci.
0x80073CF0 ERROR_INSTALL_OPEN_PACKAGE_FAILED Balíček MSIX je poškozený nebo nepřístupný. Ověřte, že soubor balíčku je nedotčený a cesta je správná.
0x80073CF3 ERROR_INSTALL_PREREQUISITE_FAILED Požadovaný balíček závislostí chybí nebo není kompatibilní. Ujistěte se, že je nainstalovaný balíček architektury VCLibs a všechny další požadavky.
0x80073D06 CHYBA_BALÍČKY_V_POUŽITÍ Jeden nebo více balíčků se používá a nelze je aktualizovat. Zavřete všechny aplikace pomocí modulu runtime Windows App SDK a zkuste to znovu.
0x80073CFB ERROR_PACKAGE_ALREADY_EXISTS Verze balíčku je již zaregistrovaná. Toto je informativní – vaše aplikace může pokračovat.
0x80073CF9 CHYBA_INSTALACE_SELHALA Obecná chyba instalace. Další podrobnosti najdete v protokolech událostí (viz níže).

Tip

Úplný seznam kódů chyb instalace balíčku MSIX najdete v tématu Řešení potíží s balením, nasazením a dotazováním aplikací Windows.

Pokud kód chyby neposkytuje dostatek informací, najdete další diagnostické informace v podrobných protokolech událostí (viz Získání diagnostických informací). Protokoly událostí se nacházejí v Prohlížeč událostí v části Protokoly> aplikací a služeb Microsoft>Windows>AppxDeployment-Server.

Pokud narazíte na chyby, které nemůžete diagnostikovat, vytvořte problém v úložišti WindowsAppSDK GitHub s kódem chyby a protokoly událostí, abychom mohli problém prošetřit.