Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel bevat richtlijnen voor het implementeren van frameworkafhankelijke apps (zie What is MSIX?) die gebruikmaken van de Windows App SDK. Het equivalente onderwerp voor andere frameworkafhankelijke verpakkingsopties is Windows App SDK implementatiehandleiding voor frameworkafhankelijke apps die zijn verpakt met externe locatie of uitgepakt.
Overview
Wanneer u standaard een project maakt met behulp van een van de sjablonen WinUI 3 in Visual Studio, uw project is geconfigureerd om de app in te bouwen in een MSIX-pakket met behulp van MSIX met één project (zie Package uw app met MSIX met één project MSIX) of een Windows Application Packaging-project (zie Set up your desktop application for MSIX packaging in Visual Studio). U kunt vervolgens een MSIX-pakket voor uw app bouwen met behulp van de instructies in Package van een desktop- of UWP-app in Visual Studio. Nadat u een MSIX-pakket voor uw app hebt gebouwd, hebt u verschillende opties om uw MSIX-implementatie te beheren.
Zie Deployment-architectuur voor de Windows App SDK voor meer informatie over de pakketten die uw verpakte app mogelijk nodig heeft wanneer deze de Windows App SDK gebruikt. Deze omvatten de Framework-, Main- en Singleton-pakketten ; die allemaal zijn ondertekend en gepubliceerd door Microsoft. Er zijn twee hoofdvereisten voor het implementeren van een verpakte app:
Prerequisites
- Voor verpakte apps is de afhankelijkheid van het VCLibs-frameworkpakket een vereiste. Zie C++ Runtime Framework-pakketten voor Desktop Bridgevoor meer informatie.
- C#. .NET 6 of hoger is vereist. Zie .NET Downloads voor meer informatie.
Het Windows App SDK framework-pakket implementeren
Het Windows App SDK framework-pakket bevat de Windows App SDK binaire bestanden die tijdens runtime worden gebruikt en wordt geïnstalleerd met uw toepassing. Het framework heeft verschillende implementatievereisten voor verschillende kanalen van de Windows App SDK.
Stabiele versie
Wanneer u een stabiele releaseversie van het Windows App SDK NuGet-pakket installeert op uw ontwikkelcomputer en u een project maakt met behulp van een van de meegeleverde WinUI-projectsjablonen, bevat het gegenereerde pakketmanifest een PackageDependency-element dat een afhankelijkheid van het frameworkpakket aangeeft.
Als u uw app-pakket echter handmatig bouwt met behulp van een afzonderlijk Windows Application Packaging-project, moet u een PackageReference declareren in uw bestand Application (package).wapproj, zoals hieronder:
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.260209005">
<IncludeAssets>build</IncludeAssets>
</PackageReference>
</ItemGroup>
Deze pakketafhankelijkheid zorgt ervoor dat het Framework-pakket wordt geïnstalleerd wanneer uw app op een andere computer wordt geïmplementeerd.
Preview-versie
Wanneer u een preview-versie van het Windows App SDK NuGet-pakket op uw ontwikkelcomputer installeert, wordt er tijdens de build een preview-versie van het Windows App SDK frameworkpakket geïmplementeerd als een NuGet-pakketafhankelijkheid.
De implementatie-API aanroepen
Zie ook Initialize the Windows App SDK.
De Implementatie-API wordt geleverd door het Windows App SDK framework-pakket en is beschikbaar in de Microsoft.Windows. ApplicationModel.WindowsAppRuntime naamruimte. Het Windows toepassingsmodel biedt geen ondersteuning voor het declareren van een afhankelijkheid van de Main- en Singleton-pakketten. De implementatie-API is daarom om deze redenen vereist:
- Als u het Singleton-pakket wilt implementeren voor functies die niet in het Framework-pakket (bijvoorbeeld pushmeldingen) aanwezig zijn.
- Als u het hoofdpakket wilt implementeren, waarmee automatische updates voor het Framework-pakket vanuit de Microsoft Store worden ingeschakeld.
Voor verpakte apps die niet worden gedistribueerd via de Store, bent u als ontwikkelaar verantwoordelijk voor het distribueren van het Framework-pakket. U wordt aangeraden de Implementatie-API aan te roepen, zodat essentiële onderhoudsupdates worden geleverd. Houd er rekening mee dat voor het gebruik van functies buiten het Framework-pakket (bijvoorbeeld pushmeldingen), het Singleton-pakket moet worden geïmplementeerd (dit kan worden gedaan met de Implementatie-API of door de MSIX-pakketten opnieuw te distribueren met behulp van uw eigen installatiemethode).
Important
Alleen verpakte apps die volledig vertrouwen hebben of waarvoor de mogelijkheden packageManagement beperkt zijn, hebben de machtiging om de Implementatie-API te gebruiken om de afhankelijkheden van het Main- en Singleton-pakket te installeren.
U moet de implementatie-API aanroepen nadat het proces van uw app is geïnitialiseerd, maar voordat uw app gebruikmaakt van Windows App SDK runtimefuncties die gebruikmaken van het Singleton-pakket (bijvoorbeeld pushmeldingen). De belangrijkste methoden van de Implementatie-API zijn de statische GetStatus - en Initialize-methoden van de Klasse DeploymentManager .
- De methode GetStatus retourneert de huidige implementatiestatus van de Windows App SDK runtime die momenteel is geladen. Gebruik deze methode om te bepalen of er werk is vereist om Windows App SDK runtimepakketten te installeren voordat de huidige app Windows App SDK functies kan gebruiken.
- De methode Initialize controleert of alle vereiste pakketten aanwezig zijn voor een minimale versie die nodig is voor de Windows App SDK runtime die momenteel is geladen. Als er pakketafhankelijkheden ontbreken, probeert de methode die ontbrekende pakketten te registreren. Vanaf Windows App SDK 1.1 ondersteunt de methode Initialize ook de optie om de Windows App SDK runtime-pakketten geforceerd te implementeren. Hiermee worden alle processen voor de Main - en Singleton Runtime-pakketten afgesloten en worden hun services dus onderbroken (pushmeldingen leveren bijvoorbeeld geen meldingen gedurende deze tijd). U moet Initialiseren slechts één keer aanroepen. U hoeft Initialize niet aan te roepen voor apps die zijn geïmplementeerd via de Start Without Debugging en Start Debugging opdrachten in Visual Studio.
Important
De standaardwaarde van de eigenschap Visual Studio <WindowsAppSdkDeploymentManagerInitialize> is true. Dus als u DeploymentManager.Initialize expliciet wilt aanroepen, stelt u <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> in uw Visual Studio projectbestand in.
Voorbeeld-app voor implementatie-API
Bekijk de beschikbare voorbeeld-app voor aanvullende richtlijnen over het gebruik van de GetStatus - en Initialize-methoden van de klasse DeploymentManager .
Installatiefouten aanpakken
Als de Implementatie-API een fout tegenkomt tijdens de installatie van de Windows App SDK runtimepakketten, wordt er een foutcode geretourneerd waarin het probleem wordt beschreven.
Als uw app bijvoorbeeld niet volledig vertrouwd is of niet beschikt over de beperkte mogelijkheid packageManagement, krijgt u een ACCESS_DENIED foutcode. Zie Troubleshooting packaging, deployment, and query of Windows apps voor meer informatie over andere foutcodes die u kunt tegenkomen en de mogelijke oorzaken ervan.
Als de foutcode onvoldoende informatie bevat, kunt u meer diagnostische informatie vinden in de gedetailleerde gebeurtenislogboeken (zie Diagnostische gegevens ophalen).
Als u fouten ondervindt die u niet kunt diagnosticeren, kunt u een probleem indienen in de WindowsAppSDK GitHub opslagplaats met de foutcode en gebeurtenislogboeken, zodat we het probleem kunnen onderzoeken.
Verwante onderwerpen
Windows developer