Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide décrit les erreurs MSIX les plus courantes lors de l’installation, de la signature, de la remise du programme d’installation d’application, des dépendances manquantes et du comportement d’exécution. Chaque section inclut le symptôme, la cause racine et la résolution.
Pour obtenir un journal complet des événements de déploiement, ouvrez observateur d'événements et accédez à : Journaux des applications et services → Microsoft → Windows → AppxDeployment-Server → Opérationnel
Conseil / Astuce
Pour un ensemble consolidé de diagnostics, exécutez également application Windows Kit de certification avant de distribuer votre package.
Erreurs d’installation
0x80070005 — Accès refusé
Symptôme : Add-AppxPackage ou le programme d’installation d’application échoue avec le code 0x80070005d’erreur .
Applies à : Windows 10 et versions ultérieures, Windows 11
Causes et correctifs :
| La cause | Réparer |
|---|---|
| Exécution en tant qu’utilisateur standard sans élévation lorsque le package nécessite une installation par ordinateur | Exécutez PowerShell en tant qu’administrateur. Pour installer pour tous les utilisateurs, utilisez Add-AppxProvisionedPackage plutôt que Add-AppxPackage. |
| Logiciel antivirus ou de sécurité bloquant le fichier de package | Désactiver temporairement l’analyse en temps réel ou ajouter une exclusion pour le .msix / .msixbundle fichier |
| Package préparé pour un autre utilisateur et n'a pas été provisionné | Utiliser Add-AppxProvisionedPackage pour approvisionner tous les utilisateurs |
| Listes de contrôle d’accès du système de fichiers bloquant l’accès en lecture au package | Vérifier les autorisations sur le fichier de package avec icacls; accorder l’accès en lecture à l’utilisateur d’installation |
Installation de package bloquée, car l’application est en cours d’utilisation
Symptôme : La mise à jour ou la réinstallation échoue avec une erreur indiquant que le package est en cours d’utilisation. Dans observateur d'événements, vous voyez que l’opération de déploiement a été rejetée.
Applies à : Windows 10 et versions ultérieures, Windows 11
Correctif : fermez toutes les instances en cours d’exécution de l’application avant la mise à jour. Si l’application est un service en arrière-plan ou qu’une tâche en arrière-plan est inscrite, vous devrez peut-être également les arrêter :
Get-Process -Name "MyApp" | Stop-Process -Force
Add-AppxPackage -Path .\updated-app.msix
Pour les déploiements d’entreprise, envisagez de planifier des mises à jour pendant les fenêtres de maintenance à l’aide d’Intune ou de Configuration Manager.
Incompatibilité de minVersion ou d’architecture
Symptom : l’installation échoue avec une erreur telle que « Impossible d’installer le package, car il n’est pas compatible avec cette version de Windows » ou « Le package n’est pas applicable à cet ordinateur ».
Applies à : Windows 10 et versions ultérieures
Causes et correctifs :
| La cause | Réparer |
|---|---|
Le package MinVersion dans le manifeste est supérieur à la version du système d’exploitation |
Générer un package distinct ciblant la version du système d’exploitation installée ou mettre à jour l’appareil |
| Incompatibilité de l’architecture (par exemple, package arm64 sur un appareil x64) | Générez et distribuez la variante d’architecture correcte ; utiliser un bundle (.msixbundle) pour traiter plusieurs architectures à partir d’un seul fichier |
| Le package cible une API Windows 11 uniquement sans vérification de compatibilité | Ajouter une entrée TargetDeviceFamily pour les Windows 10 et les Windows 11, ou protéger l’appel d’API avec une vérification de version lors de l’exécution |
Note
Utilisez des .msixbundle fichiers lors de la distribution dans des environnements à architecture mixte. Un bundle contient des packages pour plusieurs architectures et Windows sélectionne le package approprié au moment de l’installation.
Add-AppxPackage réussit, mais l’application est manquante dans le menu Démarrer
Symptôme : PowerShell signale la réussite, mais l’application n’apparaît pas dans le menu Démarrer ou la liste des applications.
Applies à : Windows 10 et versions ultérieures, Windows 11
Causes courantes :
-
Par utilisateur et par ordinateur :
Add-AppxPackageinstalle uniquement l’utilisateur actuel. Si vous exécutez en tant qu'administrateur mais que vous souhaitez utiliser l'application pour un autre utilisateur, utilisezAdd-AppxProvisionedPackageà la place. - Package enregistré mais vignette non épinglée : l’application est installée, mais le menu Démarrer n’a pas été actualisé. Déconnectez-vous et reconnectez-vous ou vérifiez les paramètres → Apps pour confirmer l’installation.
-
Entrée de menu Démarrer manquante dans le manifeste : vérifiez que l’élément
<Application>AppxManifest.xmlinclut uneVisualElementsentrée avec une entrée valideSquare150x150Logo. -
Conflit de noms de famille de packages en double : si une version plus récente ou antérieure de l’application est déjà installée avec le même nom de famille de packages, la nouvelle installation peut la remplacer en mode silencieux. Vérifiez avec
Get-AppxPackage -Name "YourPackageFamilyName".
Erreurs de signature et de certificat
Note
Pour obtenir des codes d’erreur et des indicateurs SignTool détaillés, consultez problèmes connus et résolution des problèmes pour SignTool.
Certificat non approuvé (0x800B0109)
Symptôme : L’installation échoue avec une erreur 0x800B0109 : « Une chaîne de certificats traitée, mais arrêtée dans un certificat racine qui n’est pas approuvé par le fournisseur d’approbation ».
Applies à : Windows 10 et versions ultérieures, Windows 11
Cause : le certificat utilisé pour signer le package n’est pas dans les magasins de certificats approuvés de l’appareil. Cela est courant lors de l’utilisation de certificats auto-signés pour le développement.
Correctif : Importez le certificat de signature dans le magasin de l'ordinateur local de l’appareil → magasin Personnes de confiance (et non le magasin de l'utilisateur actuel – le programme d’installation d’application vérifie uniquement le magasin de l'ordinateur) :
# Export the certificate from the package first (if needed)
$cert = (Get-AuthenticodeSignature -FilePath .\app.msix).SignerCertificate
Export-Certificate -Cert $cert -FilePath .\app-cert.cer
# Import into Trusted People (requires administrator rights)
Import-Certificate -FilePath .\app-cert.cer -CertStoreLocation Cert:\LocalMachine\TrustedPeople
Important
N’importez pas de certificats de signature dans le magasin Autorités de Certification Racines de Confiance, sauf si le certificat est une autorité de certification racine. L’importation de certificats auto-signés non approuvés affaiblit la posture de sécurité de l’appareil.
Pour les applications de production, utilisez un certificat émis par une autorité de certification approuvée ou Signature des artefacts Azure (anciennement Signature approuvée), qui fait partie de la chaîne de certification de l'autorité racine de vérification d'identité de Microsoft, approuvée par défaut sur Windows 10 version 1809 et ultérieure et Windows 11.
Incohérence du nom du fournisseur (0x8007000B, ID d’événement 150)
Symptom : SignTool échoue avec 0x8007000B et observateur d'événements (journal opérationnel AppxPackagingOM) affiche Event ID 150 :
error 0x8007000B: The app manifest publisher name (CN=Contoso) must match
the subject name of the signing certificate (CN=Contoso, C=US).
Applies à : Windows 10 et versions ultérieures, Windows 11
Cause : l’attribut Publisher dans AppxManifest.xml doit correspondre exactement au nom subject du certificat de signature, y compris tous les champs de nom unique dans le même ordre.
Correctif :
Obtenez le nom exact de l’objet à partir du certificat :
(Get-Item Cert:\CurrentUser\My\THUMBPRINT).Subject # Example output: CN=Contoso, C=USMise à jour
AppxManifest.xmlpour correspondre exactement :<Identity Name="Contoso.MyApp" Publisher="CN=Contoso, C=US" ... />Re-empaqueter et
MakeAppx.exeréinscrire.
Conseil / Astuce
Lorsque vous utilisez Signature d'artefact Azure (anciennement Signature Approuvée), la valeur de l'éditeur dans votre manifeste doit correspondre à votre identité vérifiée, trouvée dans le portail Azure sous le champ Nom du sujet de votre profil de certificat.
Erreurs du programme d'installation d'application et de la livraison web
Incompatibilité de version de schéma dans le fichier .appinstaller
Symptôme : Le programme d’installation d’application ne parvient pas à analyser ou traiter le .appinstaller fichier, souvent avec une erreur générique concernant un fichier non valide ou un schéma non pris en charge.
Applies à : Windows 10 et versions ultérieures (dépendant de la version – voir la table)
Cause : l'attribut Uri de l'élément racine <AppInstaller> spécifie une version de schéma que la version installée de Windows ne prend pas en charge.
Versions de schéma par version de Windows :
| version de Windows | Version minimale prise en charge du schéma |
|---|---|
| Windows 10 version 1709 | 1.0.0.0 |
| Windows 10 version 1803 | 1.1.0.0 |
| Windows 10 version 1809 | 1.2.0.0 |
| Windows 10 version 1903 et ultérieure, Windows 11 | 1.3.0.0, 1.4.0.0, 1.5.0.0 |
Correction : Définissez l'URI du schéma de votre fichier .appinstaller sur la version minimale requise par votre système d'exploitation le plus bas pris en charge :
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller Uri="https://example.com/app.appinstaller"
Version="1.0.0.0"
xmlns="http://schemas.microsoft.com/appx/appinstaller/2017">
Évitez d’utiliser la dernière version du schéma si vous devez prendre en charge les versions antérieures de Windows 10.
Fichiers servis avec un type MIME incorrect ou une longueur de contenu manquante
Symptôme : Le programme d’installation d’application échoue lors de l’installation à partir d’un point de terminaison HTTP/HTTPS. L’erreur peut être générique, par 0x80072F76 exemple (« Erreur inconnue ») ou « Échec de l’installation de l’application ».
Applies à : Windows 10 et versions ultérieures
Cause : Le serveur web transmet le fichier .msix, .msixbundle, ou .appinstaller avec un en-tête incorrect Content-Type, ou en omettant l’en-tête Content-Length.
Correctif : Configurez votre serveur web pour traiter les fichiers LIÉS à MSIX avec les types MIME appropriés :
| Extension de fichier | Type MIME requis |
|---|---|
.msix |
application/msix |
.msixbundle |
application/msixbundle |
.appinstaller |
application/appinstaller |
.appx |
application/appx |
.appxbundle |
application/appxbundle |
Vérifiez également que chaque réponse inclut un en-tête valide Content-Length — cela s'applique à la fois aux requêtes GET et HEAD.
Pour IIS, ajoutez des mappages de types MIME dans web.config. Pour Azure Static Web Apps ou GitHub Pages, les types MIME pour ces extensions peuvent avoir besoin d’une configuration explicite ou d’une solution d’hébergement personnalisée.
Dépendances manquantes
Package framework non installé (VCLibs, .NET, SDK d'application Windows)
Symptom : l’application s’installe correctement, mais se bloque lors du lancement, ou l’installation échoue avec une erreur de dépendance référençant un nom de famille de package tel que Microsoft.VCLibs, Microsoft.WindowsAppRuntime ou Microsoft.NET.Native.
Applies à : Windows 10 et versions ultérieures, Windows 11
Cadres courants et où les obtenir
| Cadre | Nécessaire quand | Origine |
|---|---|---|
| VCLibs (x64/x86/arm64) | L’application utilise le runtime C++ | Microsoft Store (installé automatiquement) ou direct download |
| .NET 8 Desktop Runtime | L'application cible .NET 8 | Inclus avec SDK d'application Windows ; ou direct download |
| SDK d'application Windows (WinAppSDK) | L’application utilise WinUI 3 ou d’autres API WinAppSDK | publications SDK d'application Windows sur GitHub |
Correctif pour le développement : lors de l’installation localement via Add-AppxPackage, ajoutez le paramètre -DependencyPackages d’abord ou installez d'abord les packages du framework :
# Install VCLibs dependency first
Add-AppxPackage -Path .\Microsoft.VCLibs.x64.14.00.Desktop.appx
# Then install your app
Add-AppxPackage -Path .\MyApp.msix
Correctif pour la distribution : si vous distribuez en dehors du Windows Store, incluez des packages d’infrastructure dans votre .appinstaller fichier sous <Dependencies>:
<Dependencies>
<Package Name="Microsoft.VCLibs.140.00.UWPDesktop"
Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
Version="14.0.30704.0"
Uri="https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx"
ProcessorArchitecture="x64"/>
</Dependencies>
Note
Lors de la distribution via le Microsoft Store, les dépendances d’infrastructure sont automatiquement téléchargées et installées. La gestion manuelle des dépendances est nécessaire uniquement pour le chargement latéral et les déploiements d’entreprise.
SignTool introuvable dans CI/CD
Symptom : le pipeline CI/CD (GitHub Actions, Azure DevOps) échoue avec une erreur telle que 'signtool' is not recognized as an internal or external command ou SignTool.exe: not found.
Applies à : Windows 10 et versions ultérieures, Windows 11 (machine de signature)
Cause : SignTool fait partie du Kit de développement logiciel (SDK) Windows et n’est pas inclus dans les images d’exécuteur CI standard par défaut.
Fixes:
Option 1 : installez Windows SDK dans le pipeline (GitHub Actions) :
- name: Install Windows SDK
run: |
winget install --id Microsoft.WindowsSDK.10.0.22621 --accept-source-agreements --accept-package-agreements
Option 2 : utilisez l’interface CLI WinApp (la plus simple pour la signature MSIX) :
- name: Install WinApp CLI
run: winget install -e --id Microsoft.WinAppCLI --source winget --accept-source-agreements
- name: Sign MSIX
run: winapp sign output\MyApp.msix --cert ${{ secrets.CERT_THUMBPRINT }}
Option 3 : Utilisez la signature d'artefacts Azure (recommandé pour la production) :
- name: Sign with Azure Artifact Signing
uses: azure/trusted-signing-action@v0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
endpoint: ${{ secrets.AZURE_ARTIFACT_SIGNING_ENDPOINT }}
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
files-folder: ${{ github.workspace }}\output
files-folder-filter: msix
Note
L’action GitHub est nommée azure/trusted-signing-action (l’ancien nom du service). Il s'agit de l'action officielle, indépendamment du changement de nom en Artifact Signing.
Pour obtenir une procédure pas à pas complète de la configuration de la signature CI/CD, consultez Le guide de signature de votre package MSIX - de bout en bout.
Comportement du runtime et de la virtualisation
Les packages MSIX s’exécutent à l’intérieur d’un conteneur d’application léger. Certains comportements qui semblent être des bogues sont en fait par conception : le conteneur intercepte les opérations de fichier et de Registre pour protéger le reste du système.
Pourquoi les écritures de fichiers semblent disparaître (redirection de fichiers VFS)
Symptôme : l’application écrit un fichier dans un chemin d’accès tel qu’au C:\Program Files\MyApp\config.ini moment de l’exécution, mais le fichier n’y apparaît pas. L’application lit correctement la valeur, mais d’autres processus ou utilisateurs ne le voient pas.
Applies à : Windows 10 et versions ultérieures, Windows 11
Explication : MSIX utilise la redirection VFS (Virtual File System). Les écritures dans les chemins système protégés sont redirigées en mode silencieux vers un conteneur par utilisateur :
%LocalAppData%\Packages\<PackageFamilyName>\LocalCache\Local\VFS\
C'est intentionnellement conçu pour empêcher les applications MSIX de modifier les emplacements du système partagé, afin de faciliter une désinstallation propre.
Options :
-
Utilisez plutôt des dossiers de données d’application : écrire dans
ApplicationData.Current.LocalFolder(WinRT) ou%LocalAppData%\Packages\<PFN>\LocalState\pour les données par utilisateur qui doivent être conservées. -
Utiliser
AppData\Roamingpour les données qui doivent se déplacer sur les appareils. -
Inspectez le conteneur VFS pour afficher les fichiers redirigés :
%LocalAppData%\Packages\<PackageFamilyName>\LocalCache\
Pour plus d’informations sur les chemins d’accès virtualisés, consultez Résoudre les problèmes d’exécution dans un conteneur MSIX.
Pourquoi les écritures de Registre semblent disparaître (virtualisation du Registre)
Symptôme : l’application écrit sur HKEY_LOCAL_MACHINE\Software\MyApp\ au moment de l’exécution, mais la valeur n’est pas visible pour d’autres processus et ne survit pas à une réinstallation.
Applies à : Windows 10 et versions ultérieures, Windows 11
Explication : MSIX intercepte les écritures HKLM\Software et les redirige vers une ruche de registre par package isolée du reste du système. Lors de la désinstallation, la ruche est supprimée.
Options :
- Écrivez les paramètres par utilisateur dans
HKEY_CURRENT_USER\Software\<AppName>: ceux-ci ne sont pas virtualisés et persistants. - Utilisez les API Windows ApplicationData pour le stockage de paramètres structurés.
- Déclarez les entrées de Registre qui doivent être partagées entre les utilisateurs ou les processus dans
AppxManifest.xmll’aide du<Extensions>/<com:Extension>mécanisme.
Pour plus d’informations sur le comportement du conteneur MSIX, consultez Understand comment les applications de bureau empaquetées s’exécutent sur Windows.
Limitations de Windows 10 MSIX
Certaines fonctionnalités MSIX nécessitent Windows 11 ou une version Windows 10 spécifique. Si vous effectuez un déploiement sur des appareils Windows 10, tenez compte des éléments suivants.
Fonctionnalités qui nécessitent Windows 10, version 2004 (build 19041) ou ultérieure
| Fonctionnalité | Version minimale |
|---|---|
Schéma de mise à jour automatique 2021 (ShowPrompt, UpdateBlocksActivation) |
Windows 10 2004 (19041) |
Renforcement de l’intégrité du paquet (uap10:PackageIntegrity) |
Windows 10 2004 (19041) |
| Réparation automatique du programme d’installation d’application | Windows 10 2004 (19041) |
| Aucune stratégie de chargement indépendant distincte pour les installations de package d’application approuvée ; voir Activer votre appareil pour le développement pour connaître les exigences actuelles | Windows 10 2004 (19041) |
Fonctionnalités qui nécessitent Windows 11
| Fonctionnalité | Remarques |
|---|---|
| Identité de package clairsemée sans empaquetage complet | Nécessite Windows 11 |
| Prise en charge de MSIX pour les applications non empaquetées avec un emplacement externe (prise en charge complète de la plateforme) | Certaines API ont été améliorées dans Windows 11 |
| Amélioration des performances d’installation par ordinateur MSIX | optimisations de Windows 11 |
Windows 10 appareils antérieurs à la version 1709
MSIX n’est pas pris en charge en mode natif sur Windows 10 versions antérieures à 1709 (Fall Creators Update). Pour déployer des packages MSIX sur ces appareils, utilisez MSIX Core, qui fournit une couche de compatibilité pour les versions de Windows 10 de bas niveau.
Extensions de manifeste
Certaines extensions d’espace de noms AppxManifest.xml sont Windows 11 uniquement. Les déclarer sur un package ciblant Windows 10 peut échouer à la validation du schéma lors de l’empaquetage, ou être rejeté lors de l’installation. Vérifiez la référence du schéma du manifeste du package d’application pour chaque MinOSVersion extension répertoriée.
Conseil de débogage
Pour vérifier les fonctionnalités MSIX disponibles sur une build de Windows 10 spécifique, consultez la page MSIX et plateformes prises en charge qui répertorie la disponibilité des fonctionnalités par version du système d’exploitation.
Ressources associées
- Vue d’ensemble d’un package MSIX
- Signer votre paquet MSIX - Guide de bout en bout
- Problèmes connus et résolution des problèmes pour SignTool
- Résoudre les problèmes liés au programme d’installation d’applications
- Résoudre les problèmes d’exécution dans un conteneur MSIX
- Dépannage de l'emballage, du déploiement et de l'interrogation des applications Windows