53 votes

LINK : erreur fatale LNK1104 : ne peut ouvrir le fichier ' D:\...\MyProj.exe '

En utilisant Visual Studio 2010, lorsque je construis + exécute mon application à intervalles rapprochés, j'obtiens souvent l'erreur suivante. Si j'attends une ou deux minutes et que je réessaie, tout fonctionne bien. Déverrouilleur prétend qu'aucun handle ne verrouille le fichier exécutable.
Comment puis-je découvrir ce qui le verrouille ?
Si c'est Visual Studio lui-même, que dois-je faire pour qu'il s'arrête ? ou alternativement pour libérer le fichier ?

1>------ Build started: Project: MyProj, Configuration: Release Win32 ------
...
1>InitializeBuildStatus:
1>  Creating "Release\MyProj.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  All outputs are up-to-date.
1>  SomeFile1.cpp
1>ResourceCompile:
1>  All outputs are up-to-date.
1>LINK : fatal error LNK1104: cannot open file 'D:\...\MyProj.exe'
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.94
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

0 votes

Il s'agit peut-être du même problème que rapporté ici affectant les fichiers de bibliothèque statique (.lib).

2 votes

En particulier, vérifiez que "Enable .NET Framework source stepping" est désactivé dans Debugging -> General. Cela a réglé le problème pour moi, bien que je voyais cela avec des librairies statiques et non des exécutables.

0 votes

Merci, @Skrymsli, la désactivation de "Enable .NET Framework source stepping" a fait l'affaire pour moi. J'ai mis à jour la page de connexion liée par Cody Gray avec cette solution de contournement.

40voto

user963228 Points 361

J'ai eu ce problème après une réinstallation aujourd'hui. Assurez-vous que le service Application Experience est lancé et qu'il n'est pas désactivé. S'il est réglé sur manuel, je pense que VS le lancera.

6 votes

Cette réponse doit être considérée comme correcte. Vous venez de me sauver d'une réinstallation de Windows ! J'avais désactivé Application Experience et VS continuait à me donner cette erreur. Je l'ai relancé et ça marche bien.

1 votes

J'ai essayé de résoudre ce problème pendant un certain temps en C++ et C#. Avant, je devais effacer l'EXE manuellement. Cette astuce a réglé le problème. Je vous remercie !

0 votes

Merci pour le conseil, j'ai eu ce problème sur une machine CI et j'ai réglé le service Application Experience sur Automatique et l'a démarré. Après cela, il n'y a eu aucun problème. Il semble que certains changements apportés au système, comme l'installation ou la désinstallation de certains programmes, des changements de fonctionnalités ou de politiques, puissent provoquer ce problème.

17voto

standrejo Points 41

Je suis conscient que cet article est assez ancien mais je viens d'avoir le même problème avec Visual Studio 2010 entièrement corrigé, donc d'autres peuvent encore rencontrer ce problème.

L'ajout du chemin de mon projet à la liste des "éléments exclus" dans les paramètres de mon antivirus AVG semble avoir réglé le problème pour moi.

Essayez de désactiver tout anti-virus/bouclier résident et voyez si cela résout le problème. Si c'est le cas, ajoutez le chemin de votre projet aux répertoires exclus dans votre configuration AV.

1 votes

C'était ça. J'ai ouvert mon antivirus (Avira) et le dernier fichier trouvé était exactement mon fichier .exe. Donc l'antivirus le bloquait. Merci !

0 votes

Pour moi c'était vraiment le problème, j'ai exclu le chemin du projet visual studio dans bitdefender et ça marche bien maintenant, merci

0 votes

Merci pour cela. Pour moi, le problème venait de Malwarebytes.

14voto

C Johnson Points 4900

Vous avez probablement eu un processus de construction errant qui a verrouillé l'exécutable, et il (le processus errant) n'a pas été nettoyé. Dans ce cas, fermez Visual Studio, ouvrez l'explorateur de processus et supprimez tous les processus liés à Visual Studio que vous pouvez trouver. Ensuite, ouvrez à nouveau Visual Studio et essayez de reconstruire votre projet.

0 votes

C'est un problème tellement courant pour moi que le processus que vous détaillez est trop fastidieux à faire à chaque fois. Avez-vous d'autres idées ?

1 votes

@Jonathan écrire un script ? ;)

5voto

Ilya Smagin Points 1833

Le fichier peut être verrouillé car il est en cours d'exécution. Essayez de tuer le processus avec un gestionnaire de tâches.

4voto

Balaji Points 11

Vous n'avez peut-être pas fermé la sortie. Fermez la sortie, nettoyez et reconstruisez le fichier. Vous pouvez peut-être exécuter le fichier maintenant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X