Een geïsoleerde Win32-toepassing verpakken met Visual Studio

Op deze pagina wordt alles behandeld dat nodig is om een toepassing te verpakken om gebruik te maken van Win32-app-isolatie.

Belangrijk

Deze functie is in preview: Sommige informatie heeft betrekking op een prereleaseproduct dat aanzienlijk kan worden gewijzigd voordat deze commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.

Voorwaarden

Het volgende is vereist voor het verpakken van een toepassing in een geïsoleerde Win32-app:

  • Visual Studio versie 17.10.2 of hoger

Stap 1: installeer de vereiste workloads in Visual Studio, inclusief Windows 11 SDK 10.0.26100.0 (of hoger)

Open het installatieprogramma van Visual Studio en wijzig de bestaande installatie. Schakel op het tabblad Workloads het selectievakje ontwikkeling van Windows-toepassingen in (en schakel desgewenst het selectievakje ontwikkelhulpprogramma's voor WinUI-apps in voor ontwikkeling in C++). De Windows 11 SDK 10.0.26100.0 (of hoger) is ook vereist.

een schermopname van de vereiste werkbelastingen die moeten worden geïnstalleerd in Visual Studio

Stap 2: uw app-project maken

Maak in Visual Studio een nieuw C# of C++-project met behulp van de sjabloon Lege app, verpakt met Windows Application Packaging Project (WinUI 3 in Desktop). Klik op maken en selecteer vervolgens 10.0.26100.0 (of hoger) voor Target Platform Versie (TPV) en Target Platform Minimum Versie (TPMinV).

Een schermopname met een sjabloon voor een lege app met een Windows Packaging-project in Visual Studio

Een schermopname van het scherm Nieuw project in Visual Studio

Een schermopname van het nieuwe WinUI-projectscherm in Visual Studio

Stap 3: Installeer Microsoft.Windows.SDK.BuildTools versie 10.0.26100.1742 of hoger met NuGet

Ga naar Project -> NuGet-pakketten beheren om Microsoft.Windows.SDK.BuildTools versie 10.0.26100.1 (of hoger) te installeren.

Een schermopname van het scherm NuGet-pakketten beheren in Visual Studio

Een schermopname met het pakket Microsoft.Windows.SDK.BuildTools op het NuGet-scherm in Visual Studio

Een schermopname met de informatie voor het pakket Build Tools op het NuGet-scherm in Visual Studio

Stap 4: de packaging.appxmanifest- en projectbestanden bewerken

In het manifestbestand moeten de volgende wijzigingen worden aangebracht:

Opmerking: Geïsoleerde Win32-toepassingen zijn niet compatibel met andere toepassingstypen binnen hetzelfde pakket.

  • Voeg xmlns:uap18="http://schemas.microsoft.com/appx/manifest/uap/windows10/18" toe aan het <Package>-element als dit nog niet is gebeurd.

    • Voeg uap18 toe aan IgnorableNamespaces aan het einde van het <Package> element.
  • In <Dependencies>, wijzig TargetDeviceFamily naar <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.26100.0" MaxVersionTested="10.0.26226.0" />.

    Notitie

    Niet alle functies zijn beschikbaar in de minimale build, bekijk de releaseopmerkingen voor meer gedetailleerde informatie. Bovendien kunnen de volgende manifestwijzigingen ervoor zorgen dat de app een geïsoleerde app wordt, maar deze kan blijven worden uitgevoerd als een Win32-app in besturingssystemen waar win32-app-isolatie niet wordt ondersteund.

  • Vervang in <Application> alle bestaande entrypoints/trustlevels/runtimebehaviors door EntryPoint="Windows.FullTrustApplication"uap18:EntryPoint="Isolated.App"uap18:TrustLevel="appContainer" uap18:RuntimeBehavior="appSilo".

  • Verwijder in <Application>-extensies alle EntryPoints=* of Executable=*, aangezien deze van de bovenliggende <Application> zijn overgenomen.

  • Voeg desktop7:Scope="user" toe aan het extensie-element voor windows.protocol.

    Notitie

    Visual Studio voegt standaard automatisch <rescap:Capability name="runFullTrust"> toe aan <Capabilities> omdat de app een verpakte Win32-app is. Dit moet worden verwijderd, tenzij de app andere manifestextensies heeft die van invloed kunnen zijn op de globale status van de gebruiker, zoals comServer of FirewallRules, omdat deze de runFullTrust mogelijkheid vereisen.

Een schermopname met de configuratie van de pakket-app in Visual Studio

  • Voeg <AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion> toe aan het wapproj-bestand, direct na de versieregels van het doelplatform Een schermopname met de configuratie van het projectbestand in Visual Studio

Stap 5: App-pakketten bouwen en publiceren

Bouw de Visual Studio-oplossing.

Een schermopname van het bouwen van de oplossing in Visual Studio

Publiceer het app-pakket met behulp van de wizard App-pakketten maken....

een schermopname van de wizard App-pakketten maken in Visual Studio

Een schermopname die de aanmaakstap toont in de pakketassistent in Visual Studio

Na het publiceren van de app-pakketten toont de uitvoerlocatie de hoofdmap waarin het MSIX-pakket per versie wordt gepubliceerd. Open de versiemap om het Install.ps1-bestand te vinden voor het installeren van de app.

Een schermopname van de verpakking is met succes gemaakt door de wizard in Visual Studio

Overzicht van app-isolatie

Applicatiecapaciteitenprofiler

Ondersteunde mogelijkheden