Packaging d'une application Win32 isolée avec MSIX
Le packaging d'une application MSIX ou Win32 existante en une application Win32 isolée sera effectué à l'aide de l'outil de packaging MSIX (MPT). Notez que la version de MPT qui prend en charge l'isolation des applications Win32 est la v1.2023.517.0, disponible dans les actifs de la version de ce projet. La version store de MPT est obsolète pour les besoins de la fonctionnalité d'isolation des applications Win32. Vous pouvez trouver de la documentation supplémentaire pour MPT ici.
Vous pouvez trouver le téléchargement de MPT, ainsi que le profiler, dans la section releases du référentiel GitHub d’isolation des applications Win32.
Important
Cette fonctionnalité est en cours d'évaluation : Certaines informations concernent un produit en préversion qui peut être modifié de manière substantielle avant d'être commercialisé. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.
Convertir un installateur Win32 existant en une application MSIX
Sélectionnez « Application Package » à l'extrême gauche et choisissez où le package sera créé. Ce flux suivra l'option « Créer un package sur cet ordinateur ».
Remarque
Cela aboutira à l'installation de l'application comme une application Win32 normale après avoir terminé l'étape 5.
Attendez que le champ « MSIX Packaging Tool Driver » termine la vérification.
Utilisez le bouton de navigation pour accéder à l'installateur Win32 et le sélectionner. Laissez la préférence de signature vide car nous devrons modifier le manifeste et le signer à nouveau.
Entrez les informations du package.
Passez par l'installateur Win32 normalement.
S'il y a des points d'entrée supplémentaires en dehors du principal, lancez-les ou naviguez jusqu'à eux. Si l'application dispose d'options pour l'association de types de fichiers dans les paramètres/config/préférences, activez-les à cette étape afin que MSIX les prenne en compte.
Répétez le même processus s'il y a des services dans le package.
Cliquer sur Créer enregistrera le package en tant que package de confiance totale. Cliquez sur le bouton « Package Editor » pour accéder au flux « Package Editor » depuis le menu principal. Cela peut prendre jusqu'à plusieurs minutes, selon la taille du package.
Convertir une application MSIX existante pour qu'elle fonctionne de manière isolée
Sélectionnez l'option la plus à droite « Package editor », accédez au fichier .msix et cliquez sur le bouton « Open package ».
Faites défiler jusqu'à la section « Manifest file » et cliquez sur « Open file ».
Dans le manifeste, les modifications suivantes devront être apportées.
Remarque
Les applications Win32 isolées ne sont pas compatibles avec d'autres types d'applications dans le même package.
- Ajoutez
xmlns:previewsecurity2="http://schemas.microsoft.com/appx/manifest/preview/windows10/security/2"
à l'élément<Package>
s'il n'y est pas déjà.- Ajoutez
previewsecurity2
àIgnorableNamespaces
à la fin de l'élément<Package>
.
- Ajoutez
- Ajoutez
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
à l'élément<Package>
s'il n'y est pas déjà.- Ajoutez
uap10
àIgnorableNamespaces
à la fin de l'élément<Package>
.
- Ajoutez
- Dans
<Dependencies>
changezTargetDeviceFamily
en<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.25357.0" MaxVersionTested="10.0.25357.0" />
.Remarque
Toutes les fonctionnalités ne sont pas disponibles dans la build minimale, veuillez consulter les notes de version pour plus d'informations détaillées.
- Dans
<Application>
, remplacez toute entrée existante de point d'entrée/niveau de confiance/comportement d'exécution paruap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo"
. - Dans les extensions
<Application>
, supprimez toutEntryPoints=*
ouExecutable=*
car ils sont hérités de l'élément parent<Application>
. - Ajoutez
desktop7:Scope="user"
à l'élément extension pourwindows.protocol
.
Remarque
Par défaut, MPT ajoutera automatiquement
<rescap:Capability name="runFullTrust">
à<Capabilities>
en raison du fait que l'application est un Win32 packagé. Cela doit être supprimé à moins que l'application ait d'autres extensions manifestées qui peuvent affecter l'état global de l'utilisateur, telles quecomServer
ouFirewallRules
, car elles nécessitent la capacitérunFullTrust
.- Ajoutez
L'application pourrait nécessiter des capacités supplémentaires pour fonctionner correctement maintenant qu'elle est isolée.
Ces capacités ajoutent directement des fonctionnalités aux applications isolées.
isolatedWin32-print
: Imprimer des documentsisolatedWin32-sysTrayIcon
: Afficher les notifications depuis la barre systèmeisolatedWin32-shellExtensionContextMenu
: Afficher les entrées de menu contextuel basées sur COMisolatedWin32-promptForAccess
: Inviter les utilisateurs à accéder aux fichiersisolatedWin32-accessToPublisherDirectory
: Accès aux répertoires se terminant par l'ID de l'éditeur
Ces capacités permettent un accès minimal à des bibliothèques telles que le runtime MSVC ou d'autres DLL Windows/de tiers pour les applications qui ne supportent pas les invites.
isolatedWin32-dotNetBreadcrumbStore
isolatedWin32-profilesRootMinimal
isolatedWin32-userProfileMinimal
isolatedWin32-volumeRootMinimal
Enregistrez et fermez la fenêtre du manifeste. Si des erreurs sont présentes dans le manifeste, MPT les affichera. Sélectionnez Créer/Enregistrer pour générer le fichier .msix. Cela peut prendre plusieurs minutes, selon la taille du package.
- Si des erreurs se produisent avec le manifeste, un message d'erreur plus exploitable peut être trouvé dans le Visualiseur d'événements sous
Application and Services/Microsoft/Windows/AppxPackagingOM/Microsoft-Windows-AppxPackaging/Operational
.
- Si des erreurs se produisent avec le manifeste, un message d'erreur plus exploitable peut être trouvé dans le Visualiseur d'événements sous
Veuillez consulter la section application capability profiler pour obtenir des informations sur l'identification des capacités qui peuvent devoir être déclarées dans le manifeste du package d'application.
Rubriques connexes
Aperçu de l'isolation des applications Win32
Profiler des capacités d'application
Empaquetage d'une application avec isolation Win32 avec Visual Studio