Ainsi, tous les fichiers .exe que je crée à partir de Microsoft Visual Studio continuent d'envoyer un message d'erreur Le fichier ou le répertoire est corrompu et illisible lorsque je veux exécutez-les. Cela ne se produit que sur une machine Windows 10 spécifique. La même chose ne se produit pas sur les autres machines Windows 10. J'ai essayé de recréer le .exe à la fois à partir de VS 2017 et VS2019. J'ai également essayé de créer WPF, Win Forms et Console Apps. Le problème demeure, tant qu'il s'agit d'un .exe créé à partir de VS. D'autres fichiers .exe , par exemple, .exe téléchargés sur Internet ou ceux des fichiers programmes fonctionnent parfaitement. J'ai lu sur l'exécution de scs \ scannow et le problème persiste.
Quelqu'un qui a déjà été confronté à ce problème et comment vous l'avez résolu?
3 Réponses :
Ainsi, tous les fichiers .exe que je crée à partir de Microsoft Visual Studio continuent de lancer un message d'erreur Le fichier ou le répertoire est corrompu et illisible lorsque je veux les exécuter. Cela ne se produit que sur une machine Windows 10 spécifique.
Comme le problème ne se produit qu'avec une seule machine, il semble clair que quelque chose est cassé sur cette machine. Soit avec le système d'exploitation (peu probable), l'EDI ou l'installation du compilateur, ou au moins ce dossier spécifique.
Edit: Comme le comportement suit le fichier, nous pouvons supposer que ce n'est pas le système d'exploitation. Seulement quelque chose avec le processus de construction.
Vous pouvez essayer en supprimant ce dossier, puis en effectuant une réinstallation propre de l'EDI et du Framework. Mais la solution fiable serait de simplement réinstaller cet ordinateur à partir du système de fichiers. C'est le genre de bogue que vous pouvez passer des jours à essayer de déboguer sans arriver nulle part. Et même si vous pouviez le réparer, pourriez-vous vraiment compter sur l'ordinateur pour ne pas avoir d'autres bogues critiques? Peut-être ceux qui n'affichent pas de message d'erreur utile?
Comme vous avez déjà vérifié que cela ne se produit sur aucune autre machine et que cela persiste pour tout .exe créé sur cette machine, il serait au mieux trivial de déterminer ce qui est précisément erroné. Je peux vous donner une idée approximative:
Certains fichiers ont subi des dommages binaires lorsqu'ils étaient en RAM ou sur disque. Soit ce fichier était le compilateur, soit un fichier qui a ensuite corrompu le compilateur, soit un fichier qui a corrompu le fichier qui finirait par corrompre le compilateur. Comme nous n'avons pas affaire au type de matériel qui doit faire fonctionner un mars rover, un système de missiles guidés ou une centrale nucléaire, ces choses se produisent.
Cette erreur est souvent le signe de défauts du disque / système de fichiers.
J'essaierais de déplacer les fichiers compilés hors de ce dossier vers un autre dossier, de préférence sur un autre lecteur (physique). Puis vérifier s'il y circule.
Si l'option 1 ne fonctionne pas, vous pouvez essayer de reconstruire les fichiers dans un autre dossier, également sur un autre lecteur (physique) de préférence.
Si l'une des deux solutions ci-dessus fonctionne, c'est une indication que vous pourriez en effet avoir des problèmes FS / HDD. Essayez d'exécuter chkdsk / f c: sur le lecteur incriminé pour rechercher les erreurs.
Si cela ne fonctionne pas non plus, essayez de réinstaller Visual Studio.
L'OP a déjà indiqué que le problème suit le .exe, même sur un autre ordinateur.
Bonnes idées avec ces étapes de réparation. Mais je pense vraiment qu'il vaut mieux simplement le réinstaller. Vérifiez peut-être la RAM avec un outil comme Memtest. S'il a ce genre d'erreur, il a probablement d'autres types d'erreurs.
@MikeH: C'est vrai, je viens d'illustrer ma ligne de pensée. D'où la deuxième étape que j'ai suggérée. Cette étape pourrait conduire à la conclusion que la construction elle-même est source de problèmes et qu'une réinstallation de VS pourrait donc être bénéfique ...
La raison pour laquelle j'ai rencontré le problème indiqué est à cause des méthodes de transfert de données (Teamviewer, AnyDesk et Microsoft Remote Desktop) que j'utilisais pour déplacer des fichiers entre les deux ordinateurs.
J'ai découvert que le problème ne concernait pas uniquement les fichiers .exe . Tout fichier que j'ai copié sur cette machine Windows 10 spécifique qui posait un problème, je ne pouvais pas l'ouvrir. Cela pourrait renvoyer le même message d'erreur. Dans ce cas, j'accepte qu'il s'agisse d'un problème de système d'exploitation. Cependant, je n'étais pas prêt à réinstaller la machine.
Donc, pour résoudre le problème, j'ai utilisé FTP pour déplacer les fichiers entre les deux ordinateurs. J'ai téléchargé le fichier .exe sur le serveur FTP à partir d'un ordinateur et téléchargé le fichier .exe sur l'autre ordinateur qui posait des problèmes. Les fichiers téléchargés pourraient alors s'ouvrir sans aucun problème.
Que se passe-t-il si vous prenez le
.exesur la "mauvaise" machine et le déplacez vers une "bonne" machine?L'erreur se produit-elle si vous copiez le fichier .exe incorrect sur une nouvelle machine? Un "bon" exe copié sur la mauvaise machine fonctionne-t-il correctement?
@MikeH, @kit J'ai alors recopié le fichier
.execorrompu de la "mauvaise" machine vers la "bonne" machine et l'erreur s'est produite également sur la "bonne" machine. Ce qui implique que quelque chose pourrait corrompre les fichiers.exesur la "mauvaise" machine.Si l'exe est constamment cassé, il semble que le compilateur ou l'EDI soient probablement en faute.
@Christopher Je suis d'accord. Je dirais l'IDE, mais l'OP a indiqué que le problème venait à la fois de VS2017 et de VS2019. Je me demande s'il existe un indicateur ou une option du compilateur qui pourrait affecter les deux.
@Christopher Je ne dirais pas que le
.exeest systématiquement cassé. Cela fonctionne parfaitement bien sur d'autres machines. Ce n'est que lorsque le fichier est copié sur une machine spécifique où le fichier est définitivement corrompu que vous ne pouvez même pas l'exécuter sur les autres machines où il fonctionnait parfaitement bien auparavant."Donc, j'ai ensuite recopié le fichier .exe corrompu de la" mauvaise "machine vers la" bonne "machine et l'erreur s'est également produite sur la" bonne "machine" Il est clair que les fichiers se construisent sur cet ordinateur < / b> sont systématiquement cassés.
@MikeH IIRC le framework .NET a en fait apporté un compilateur. Si VS utilise celui-là, il serait cassé pour toutes les installations. | Alternativement, Programms peut partager des fichiers. C'est à cela que sert le dossier spécial
CommonProgramFiles. VS pourrait simplement faire cela pour économiser de l'espace disque.