Partager via


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

  1. 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.

    Une capture d'écran montrant la page principale de l'outil de packaging MSIX

  2. Attendez que le champ « MSIX Packaging Tool Driver » termine la vérification.

    Une capture d'écran montrant la page de création d'un nouveau package de l'outil de packaging MSIX

  3. 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.

    Une capture d'écran montrant la page de sélection de l'installateur dans l'outil de packaging MSIX

  4. Entrez les informations du package.

    Une capture d'écran montrant la page d'informations sur le package dans l'outil de packaging MSIX

  5. Passez par l'installateur Win32 normalement.

  6. 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.

  7. Répétez le même processus s'il y a des services dans le package.

  8. 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.

    Une capture d'écran montrant la page finale de création de package lors de la création d'un package dans l'outil de packaging MSIX

Convertir une application MSIX existante pour qu'elle fonctionne de manière isolée

  1. Sélectionnez l'option la plus à droite « Package editor », accédez au fichier .msix et cliquez sur le bouton « Open package ».

    Une capture d'écran montrant la page principale avant de cliquer sur Open Package dans l'outil de packaging MSIX

  2. Faites défiler jusqu'à la section « Manifest file » et cliquez sur « Open file ».

    Une capture d'écran montrant la page d'informations sur le package après avoir cliqué sur Open Package dans l'outil de packaging MSIX

    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 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>.
    • Dans <Dependencies> changez TargetDeviceFamily 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 par uap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo".
    • Dans les extensions <Application>, supprimez tout EntryPoints=* ou Executable=* car ils sont hérités de l'élément parent <Application>.
    • Ajoutez desktop7:Scope="user" à l'élément extension pour windows.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 que comServer ou FirewallRules, car elles nécessitent la capacité runFullTrust.

    Une capture d'écran montrant le contenu du fichier manifeste de l'application

  3. 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 documents
    • isolatedWin32-sysTrayIcon : Afficher les notifications depuis la barre système
    • isolatedWin32-shellExtensionContextMenu : Afficher les entrées de menu contextuel basées sur COM
    • isolatedWin32-promptForAccess : Inviter les utilisateurs à accéder aux fichiers
    • isolatedWin32-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
  4. 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.
  5. 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.

Aperçu de l'isolation des applications Win32

Profiler des capacités d'application

Empaquetage d'une application avec isolation Win32 avec Visual Studio