Windows App SDK keretrendszerfüggő csomagolt alkalmazások üzembe helyezési útmutatója

Ez a cikk útmutatást nyújt a keretrendszertől függő csomagolt alkalmazások üzembe helyezéséről (lásd: Mi az MSIX?), amelyek a Windows App SDK használják. Az egyéb keretrendszerfüggő csomagolási opciók megfelelő témaköre: keretrendszerfüggő alkalmazások Windows App SDK üzembe helyezési útmutatója, külső helyen csomagolva vagy csomagolatlanul.

Overview

Alapértelmezés szerint, amikor a Visual Studióban a WinUI 3-sablonok egyikével hoz létre projektet, a projekt úgy van konfigurálva, hogy az alkalmazást MSIX-csomagba építse akár egyprojektes MSIX használatával (lásd: Az alkalmazás csomagolása egyprojektes MSIX használatával), akár egy Windows-alkalmazáscsomagolási projekt segítségével (lásd: Az asztali alkalmazás beállítása MSIX-csomagoláshoz a Visual Studióban). Ezután létrehozhat egy MSIX-csomagot az alkalmazásához az Asztali vagy UWP alkalmazás csomagolása a Visual Studio-ban című útmutató alapján. Miután msIX-csomagot állított össze az alkalmazáshoz, számos lehetősége van AZ MSIX üzembe helyezésikezelésére.

Ha többet szeretne megtudni arról, hogy milyen csomagokra van szükség a csomagolt alkalmazásnak a Windows App SDK használatakor, tekintse meg a Windows App SDK telepítési architektúráját . Ezek közé tartoznak a Keretrendszer, a Main és a Singleton csomagok; amelyek mindegyike a Microsoft által aláírt és közzétett. A csomagolt alkalmazások üzembe helyezésének két fő követelménye van:

  1. A Windows App SDK keretrendszercsomag üzembe helyezése.
  2. Hívja meg a Deployment API-t.

Prerequisites

A Windows App SDK keretrendszercsomag üzembe helyezése

A Windows App SDK keretrendszercsomag tartalmazza a futtatáskor használt Windows App SDK bináris fájlokat, és telepítve van az alkalmazással. A keretrendszer különböző üzembehelyezési követelményekkel rendelkezik a Windows App SDK különböző csatornáihoz.

Stabil verzió

Amikor telepíti a Windows App SDK NuGet-csomag stabil kiadású verzióját a fejlesztői számítógépre, és létrehoz egy projektet a megadott WinUI-projektsablonok egyikével, a létrehozott csomagjegyzék tartalmaz egy PackageDependency elemet, amely meghatározza a keretrendszercsomagtól való függőséget.

Ha azonban manuálisan hozza létre az alkalmazáscsomagot egy külön Windows Application Packaging Project használatával, akkor deklarálnia kell egy PackageReference a Application (package).wapproj fájlban, az alábbiakhoz hasonlóan:

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

Ez a csomagfüggőség biztosítja, hogy a keretrendszercsomag telepítve legyen, amikor az alkalmazás egy másik számítógépen van üzembe helyezve.

Előzetes verzió

Amikor telepíti a Windows App SDK NuGet-csomag előzetes kiadású verzióját a fejlesztői számítógépre, a Windows App SDK keretrendszercsomag előzetes verziója lesz üzembe helyezve a buildelési idő alatt NuGet-csomagfüggőségként.

A Központi telepítési API meghívása

Lásd még: Inicializálja a Windows App SDK-t.

A Telepítési API-t a Windows App SDK keretrendszer biztosítja, és elérhető a Microsoft.Windows.ApplicationModel.WindowsAppRuntime névtérben. A Windows alkalmazásmodell nem támogatja a fő- és singleton-csomagoktól való függőség deklarálását. Ezért az üzembehelyezési API-ra az alábbi okok miatt van szükség:

  1. A Singleton-csomag a keretrendszercsomagban nem szereplő funkciók (például leküldéses értesítések) üzembe helyezéséhez.
  2. A Fő csomag üzembe helyezéséhez, amely lehetővé teszi a Keretrendszer csomag automatikus frissítését a Microsoft Store-ból.

Az Áruházon keresztül nem terjesztett csomagolt alkalmazások esetében Ön, mint fejlesztő felelős a keretrendszercsomag terjesztéséért. Javasoljuk, hogy hívja meg a Deployment API-t a kritikus karbantartási frissítések kézbesítéséhez. Vegye figyelembe, hogy a Keretrendszer-csomagon kívüli funkciók (például leküldéses értesítések) használatához telepíteni kell a Singleton-csomagot (ez elvégezhető a Deployment API-val, vagy az MSIX-csomagok saját telepítési módszer használatával történő újraterjesztésével).

Important

Csak a teljes megbízhatósággal rendelkező vagy a packageManagement korlátozott képességgel rendelkező csomagolt alkalmazások rendelkeznek engedéllyel a Központi és Singleton-csomag függőségeinek telepítéséhez a Deployment API-val.

Az üzembehelyezési API-t az alkalmazás inicializálása után kell meghívnia, de mielőtt az alkalmazás Windows App SDK olyan futtatókörnyezeti funkciókat használna, amelyek a Singleton-csomagot használják (például leküldéses értesítéseket). A Deployment API fő módszerei a DeploymentManager osztály statikus GetStatus és Initialize metódusai.

  • A GetStatus metódus a jelenleg betöltött Windows App SDK futtatókörnyezet aktuális üzembehelyezési állapotát adja vissza. Ezzel a módszerrel megállapíthatja, hogy Windows App SDK futtatókörnyezeti csomagok telepítéséhez szükséges-e munka ahhoz, hogy az aktuális alkalmazás Windows App SDK funkciókat használjon.
  • A Initialize metódus ellenőrzi, hogy az összes szükséges csomag megtalálható-e a jelenleg betöltött Windows App SDK futtatókörnyezet által igényelt minimális verzióban. Ha valamelyik csomagfüggőség hiányzik, a metódus megpróbálja regisztrálni a hiányzó csomagokat. Az Windows App SDK 1.1-től kezdődően a Initialize metódus is támogatja a Windows App SDK futtatókörnyezeti csomagok kényszerítési lehetőségét. Ez leállítja a Main és a Singleton futtatókörnyezeti csomagok folyamatait, így megszakítja a szolgáltatásaikat (például a leküldéses értesítések nem fognak értesítéseket küldeni ebben az időszakban). Az Inicializálást csak egyszer kell meghívnia. Nem kell meghívnia az Initialize funkciót, ha a Visual Studio Hibakeresés nélküli indítás és Hibakeresés indítása parancsait használja.

Important

A Visual Studio tulajdonság alapértelmezett értéke <WindowsAppSdkDeploymentManagerInitialize>true. Ha tehát explicit módon szeretné meghívni DeploymentManager.Initialize, állítsa be a <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> a Visual Studio projektfájlban.

Üzembehelyezési API-mintaalkalmazás

A DeploymentManager osztály GetStatus és Inicializálási módszereinek használatáról az elérhető mintaalkalmazásban talál további útmutatást.

Telepítési hibák elhárítása

Ha a Központi telepítési API hibát tapasztal a Windows App SDK futtatókörnyezeti csomagok telepítése során, a hibát leíró hibakódot ad vissza.

Az alábbi táblázat a Deployment API gyakori hibakódjait és azok tipikus okait sorolja fel:

Hibakód Name Közös ok
0x80070005 ACCESS_DENIED Az alkalmazás nem teljes megbízhatóságú, vagy nem rendelkezik a packageManagement korlátozott funkcióval. Futtassa az emelt szintű verziót, vagy adja hozzá a szükséges képességet.
0x80073CF0 ERROR_INSTALL_OPEN_PACKAGE_FAILED Az MSIX-csomag sérült vagy elérhetetlen. Ellenőrizze, hogy a csomagfájl érintetlen-e, és az elérési út helyes-e.
0x80073CF3 ERROR_INSTALL_PREREQUISITE_FAILED Hiányzik vagy nem kompatibilis a szükséges függőségi csomag. Győződjön meg arról, hogy a VCLibs-keretrendszercsomag és az egyéb előfeltételek telepítve vannak.
0x80073D06 ERROR_PACKAGES_IN_USE Egy vagy több csomag használatban van, és nem frissíthető. Zárja be az összes alkalmazást a Windows App SDK futtatókörnyezet használatával, majd próbálkozzon újra.
0x80073CFB ERROR_PACKAGE_ALREADY_EXISTS A csomag verziója már regisztrálva van. Ez tájékoztató jellegű – az alkalmazás folytathatja.
0x80073CF9 ERROR_INSTALL_FAILED Általános telepítési hiba. További részletekért tekintse meg az eseménynaplókat (lásd alább).

Jótanács

Az MSIX-csomag telepítési hibakódjainak teljes listájáért tekintse meg a Windows-alkalmazások csomagolásának, üzembe helyezésének és lekérdezésének hibaelhárítását.

Ha a hibakód nem nyújt elegendő információt, további diagnosztikai információkat találhat a részletes eseménynaplókban (lásd: Diagnosztikai adatok lekérése). Az eseménynaplók eseménymegtekintő az Alkalmazások és szolgáltatások naplói>Microsoft>Windows>AppxDeployment-Server területen találhatók.

Ha olyan hibákba ütközik, amelyeket nem tud diagnosztizálni, küldjön egy hibát a WindowsAppSDK GitHub adattárban a hibakóddal és az eseménynaplókkal, hogy kivizsgálhassuk a problémát.