Après avoir accepté une mise à jour mineure de Windows cet après-midi, j'ai constaté que je ne pouvais plus créer de versions signées de mon application Visual Studio.
En creusant le problème, je suis tombé sur le programme signtool.exe qui se trouve dans un répertoire obscur (C: \ Program Files (x86) \ Kits Windows \ 10 \ bin \ 10.0.18362.0 \ x64). En utilisant l'invite de commande, j'ai essayé de l'exécuter manuellement pour signer mon application, mais quand je l'ai fait, rien ne s'est produit: aucune sortie, aucun message d'erreur. J'ai également essayé de l'exécuter sans paramètres attendant un message d'aide ou au moins une erreur, mais encore une fois, rien.
Je suis allé sur un autre ordinateur qui n'avait pas encore reçu de mises à jour Windows aujourd'hui, j'ai trouvé le même fichier et l'ai exécuté: et cela a bien fonctionné.
Pensant que je devais avoir un fichier .exe endommagé sur le premier ordinateur, j'ai copié la version de l'autre ordinateur, mais cela a quand même échoué. Cependant, si je renomme le fichier, il s'exécute. Par exemple, si je le renomme «signtool1.exe», je peux l'exécuter à partir de la ligne de commande très bien, même si Visual Studio ne peut toujours pas l'exécuter en raison du changement de nom.
J'ai essayé de redémarrer mon ordinateur plusieurs fois au cours de ce processus en pensant qu'il y en avait peut-être une copie en mémoire, mais ce n'est pas le cas. Je l'ai également recherché dans le Gestionnaire des tâches.
Je n'ai jamais rien vu de tel auparavant. Le même programme s'exécute ou ne fait rien en fonction du nom du fichier exécutable. Encore un détail, il s'exécute indépendamment du nom de fichier si je le copie dans mon répertoire personnel. Qu'est-ce qui pourrait provoquer une telle chose?
Merci, Frank
la source
Réponses:
Au lieu de renommer signtool.exe, j'ai trouvé que renommer / supprimer signtool.exe.manifest permet à signtool de s'exécuter tout en permettant à Visual Studio de l'exécuter.
Je ne sais pas pourquoi cela se produit ni quels sont les effets secondaires de la suppression du manifeste, mais il suffit que mon projet se reconstruise.
Pour référence, j'ai rencontré ce problème après avoir effectué une installation VS2019 propre dans une machine virtuelle Windows 10 1909 propre (mais entièrement mise à jour peu de temps après).
la source
Je vois le même problème. Signtool n'affiche aucune boîte de dialogue d'erreur mais le code d'erreur renvoyé est -1073741502 (0xC0000142), STATUS_DLL_INIT_FAILED.
Le problème peut être lié à la mise à jour KB4535996. J'ai désinstallé la mise à jour lorsque j'ai vu le problème et signtool a fonctionné normalement. Le problème est revenu lorsque j'ai réinstallé la mise à jour.
Signtool fonctionne si je déplace le fichier manifeste hors du répertoire, comme vous l'avez vu. Mais j'ai également remarqué que signtool fonctionne lorsque je replace le manifeste dans le répertoire.
la source
Voici un rapport de bogue sur le Windows Feedback Hub. Veuillez noter le rapport de bogue KB4535996.
la source