Problèmes connus avec les applications de bureau empaquetées
Cet article contient les problèmes connus qui peuvent se produire lorsque vous créez un package MSIX pour votre application de bureau.
Vous recevez l’erreur MSB4018 : Échec inattendu de la tâche « GenerateResource »
Cela peut se produire lorsque vous essayez de convertir des assemblys satellites en fichiers d’index de ressource de package.
Nous connaissons ce problème et nous travaillons sur une solution à plus long terme. Comme solution de contournement provisoire, vous pouvez désactiver le générateur de ressources en ajoutant cette ligne de code XML au premier élément PropertyGroup du fichier de projet d’hébergement :
<AppxGeneratePrisForPortableLibrariesEnabled>false</AppxGeneratePrisForPortableLibrariesEnabled>
Écran bleu avec code d’erreur 0x139 (KERNEL_SECURITY_CHECK_FAILURE)
Après l’installation ou le lancement de certaines applications du Microsoft Store, votre ordinateur peut redémarrer de façon inattendue et afficher l’erreur : 0x139 (KERNEL_SECURITY_CHECK_ FAILURE).
Les applications concernées connues sont Kodi, JT2Go, Ear Trumpet, Teslagrad et d’autres.
La mise à jour de Windows (version 14393.351 - KB3197954) publiée le 27/10/2016 inclut des correctifs importants qui résolvent ce problème. Si vous rencontrez ce problème, mettez à jour votre ordinateur. Si vous n’êtes pas en mesure de mettre à jour votre ordinateur car il redémarre avant que vous puissiez vous connecter, vous devez restaurer le système à un point de récupération antérieur à l’installation de l’une des applications concernées. Pour plus d’informations sur l’utilisation de la restauration du système, consultez Options de récupération dans Windows 10.
Si la mise à jour ne résout pas le problème ou si vous ne savez pas vraiment comment récupérer votre ordinateur, contactez le Support Microsoft.
Si vous êtes développeur, vous ne voulez peut-être pas que votre application empaquetée soit installée sur des versions de Windows n’incluant pas cette mise à jour. Notez que dans ce cas, votre application n’est pas disponible pour les utilisateurs n’ayant pas encore installé la mise à jour. Pour limiter la disponibilité de votre application aux utilisateurs qui ont installé cette mise à jour, modifiez le fichier AppxManifest.xml comme suit :
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.351" MaxVersionTested="10.0.14393.351"/>
Vous trouverez les informations relatives à la mise à jour de Windows aux adresses suivantes :
- https://support.microsoft.com/kb/3197954
- https://support.microsoft.com/help/12387/windows-10-update-history
Erreurs courantes susceptibles de s’afficher lorsque vous signez votre application
La non-correspondance de l’éditeur et du certificat provoque une erreur Signtool « Erreur : SignerSign() Failed » (-2147024885/0x8007000b)
L’entrée Publisher dans le manifeste du package d’application Windows doit correspondre à l’objet du certificat avec lequel vous effectuez la signature. Vous pouvez utiliser l’une des méthodes suivantes pour afficher l’objet du certificat.
Option 1 : Powershell
Exécutez la commande PowerShell suivante. Il est possible d’utiliser le format .cer ou .pfx comme fichier de certificat, car ils ont les mêmes informations d’éditeur.
(Get-PfxCertificate <cert_file>).Subject
Option 2 : Explorateur de fichiers
Double-cliquez sur le certificat dans l’Explorateur de fichiers. Sélectionnez ensuite l’onglet Détails, puis le champ Objet dans la liste. Vous pouvez alors copier le contenu.
Option 3 : CertUtil
Exécutez certutil à partir de la ligne de commande sur le fichier PFX, puis copiez le champ Subject à partir de la sortie.
certutil -dump <cert_file.pfx>
Certificat PE incorrect (0x800700C1)
Cela peut se produire lorsque votre package contient un fichier binaire avec un certificat endommagé. Voici les raisons pour lesquelles cela peut se produire :
Le début du certificat n’est pas à la fin d’une image.
La taille du certificat n’est pas positive.
Le début du certificat ne se trouve pas après la structure
IMAGE_NT_HEADERS32
pour un exécutable 32 bits ni après la structureIMAGE_NT_HEADERS64
pour un exécutable 64 bits.Le pointeur du certificat n’est pas correctement aligné pour une structure WIN_CERTIFICATE.
Pour rechercher des fichiers contenant un certificat PE incorrect, ouvrez une invite de commandes et définissez la variable d’environnement nommée avec la valeur 1.
set APPXSIP_LOG=1
Ensuite, à partir de l’invite de commandes, signez à nouveau votre application. Par exemple :
signtool.exe sign /a /v /fd SHA256 /f APPX_TEST_0.pfx C:\Users\Contoso\Desktop\pe\VLC.appx
Les informations sur les fichiers qui contiennent un certificat PE incorrect s’affichent dans la fenêtre de console. Par exemple :
...
ERROR: [AppxSipCustomLoggerCallback] File has malformed certificate: uninstall.exe
...
Étapes suivantes
Des questions ? Contactez-nous sur Stack Overflow. Notre équipe supervise ces étiquettes.