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).
Parmi les applications connues, citons Kodi, JT2Go, Ear Trumpet, Teslagrad et d’autres.
Une mise à jour Windows (version 14393.351 - Ko3197954) a été publiée le 10/27/16 qui 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 PC, car votre ordinateur redémarre avant de pouvoir vous connecter, vous devez utiliser la restauration du système pour récupérer votre système à un point antérieur à celui où vous avez installé l’une des applications affectées. Pour plus d’informations sur l’utilisation de la restauration du système, consultez les 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 comment récupérer votre PC, contactez 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 plus d’informations sur Windows Update à l’adresse suivante :
- 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
L’incompatibilité de l’éditeur et du certificat provoque l’erreur Signtool "Error: 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. .cer ou .pfx peut être utilisé 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 Explorateur de fichiers, sélectionnez l’onglet Détails, puis le champ Objet de la liste. Vous pouvez ensuite 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 APPXSIP_LOG
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.