Dela via


Distributionsguide för Windows App SDK för ramverksberoende paketerade appar

Den här artikeln innehåller vägledning om hur du distribuerar ramverksberoende paketerade appar (se Vad är MSIX?) som använder Windows App SDK. Motsvarande ämne för andra ramverksberoende paketeringsalternativ är Guide för distribution av Windows App SDK för ramverksberoende appar som paketeras med en extern plats eller är opaketerade.

Overview

När du skapar ett projekt med någon av WinUI 3-mallarna i Visual Studio är ditt projekt som standard konfigurerat för att bygga appen till ett MSIX-paket med antingen MSIX med ett enda projekt (se Paketera din app med MSIX med ett projekt) eller ett Windows Application Packaging-projekt (se Konfigurera ditt skrivbordsprogram för MSIX-paketering i Visual Studio). Du kan sedan skapa ett MSIX-paket för din app med hjälp av anvisningarna i Paketera en skrivbords- eller UWP-app i Visual Studio. När du har skapat ett MSIX-paket för din app har du flera alternativ för att hantera MSIX-distributionen.

Mer information om de paket som din paketerade app kan behöva när den använder Windows App SDK finns i Distributionsarkitektur för Windows App SDK. Those include the Framework, Main, and Singleton packages; which are all signed and published by Microsoft. Det finns två huvudsakliga krav för att distribuera en paketerad app:

  1. Distribuera Windows App SDK-ramverkspaketet.
  2. Anropa distributions-API:et.

Prerequisites

Distribuera Windows App SDK-ramverkspaketet

Windows App SDK-ramverkspaketet innehåller de Windows App SDK-binärfiler som används vid körning och installeras med ditt program. Ramverket har olika distributionskrav för olika kanaler i Windows App SDK.

Stable version

När du installerar en stabil versionsversion (se Viktig information om stabil kanal) för Windows App SDK NuGet-paketet på utvecklingsdatorn och du skapar ett projekt med någon av de angivna WinUI 3-projektmallarna, innehåller det genererade paketmanifestet ett PackageDependency-element som anger ett beroende för ramverkspaketet.

However, if you build your app package manually using a separate Windows Application Packaging Project, then you must declare a PackageReference in your Application (package).wapproj file, like the following:

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

Det paketberoendet säkerställer att Framework-paketet installeras när din app distribueras till en annan dator.

Preview version

När du installerar en förhandsversion (se förhandsversionskanalens viktig information) av Windows App SDK NuGet-paketet på din utvecklingsdator, distribueras en förhandsversion av Windows App SDK-ramverkspaketet under byggprocessen som ett beroende av NuGet-paketet.

Anropa distributions-API:et

Se även Initiera Windows App SDK-.

The Deployment API is provided by the Windows App SDK framework package, and is available in the Microsoft.Windows.ApplicationModel.WindowsAppRuntime namespace. Windows-programmodellen stöder inte att deklarera ett beroende av Main- och Singleton-paketen. Distributions-API:et krävs därför av följande skäl:

  1. Distribuera Singleton-paketet för funktioner som inte finns i Framework-paketet (till exempel push-meddelanden).
  2. Distribuera Main-paketet, som möjliggör automatiska uppdateringar av Framework-paketet från Microsoft Store.

For packaged apps that are not distributed through the Store, you as the developer are responsible for distributing the Framework package. Vi rekommenderar att du anropar distributions-API:et så att alla viktiga underhållsuppdateringar levereras. Observera att för att använda funktioner utanför Framework-paketet (till exempel push-meddelanden) måste Singleton-paketet distribueras (detta kan göras med distributions-API:et eller genom att distribuera MSIX-paketen med din egen installationsmetod).

Important

In Windows App SDK version 1.0, only packaged apps that are full trust or that have the packageManagement restricted capability have the permission to use the Deployment API to install the Main and Singleton package dependencies. Stöd för delvis betrodda paketerade appar kommer i senare versioner.

Du bör anropa distributions-API:et när appens process har initierats, men innan appen använder Windows App SDK-körningsfunktioner som använder Singleton-paketet (till exempel push-meddelanden). The main methods of the Deployment API are the static GetStatus and Initialize methods of the DeploymentManager class.

  • The GetStatus method returns the current deployment status of the Windows App SDK runtime that's currently loaded. Använd den här metoden för att identifiera om det krävs arbete för att installera Windows App SDK-körningspaket innan den aktuella appen kan använda Windows App SDK-funktioner.
  • The Initialize method verifies whether all required packages are present to a minimum version needed by the Windows App SDK runtime that's currently loaded. Om några paketberoenden saknas försöker metoden registrera de paket som saknas. Beginning in Windows App SDK 1.1, the Initialize method also supports the option to force-deploy the Windows App SDK runtime packages. That shuts down any processes for the Main and Singleton runtime packages, and thus interrupts their services (for example, push notifications won't deliver notifications during this time). You should call Initialize only once. You don't need to call Initialize for apps deployed via the Start Without Debugging and Start Debugging commands in Visual Studio.

Important

Standardvärdet för egenskapen <WindowsAppSdkDeploymentManagerInitialize> Visual Studio är true. So if you wish to call DeploymentManager.Initialize explicitly, then set <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> in your Visual Studio project file.

Exempelapp för distributions-API

For additional guidance on how to use the GetStatus and Initialize methods of the DeploymentManager class, explore the available sample app.

Åtgärda installationsfel

Om distributions-API:et stöter på ett fel under installationen av Windows App SDK-körningspaketen returneras en felkod som beskriver problemet.

For example, if your app is not full trust, or doesn't have the packageManagement restricted capability, then you'll get an ACCESS_DENIED error code. Om du vill granska andra felkoder som kan uppstå och deras möjliga orsaker, se Felsökning av paketering, distribution och frågor om Windows-appar.

Om felkoden inte innehåller tillräckligt med information kan du hitta mer diagnostikinformation i de detaljerade händelseloggarna (se Hämta diagnostikinformation).

Om du får fel som du inte kan diagnostisera kan du skapa ett problem i GitHub-lagringsplatsen WindowsAppSDK med felkoden och händelseloggarna så att vi kan undersöka problemet.