Visual Studio "ne pouvait pas copier" ... pendant la construction

je continue à obtenir cette erreur pendant la construction de mon projet VS2012 C#

Error   41  Could not copy "objDebugWeinGartner.WeinCad.exe" to
 "binDebugWeinGartner.WeinCad.exe". 
 Exceeded retry count of 10. Failed.    


Error   42  Unable to copy file "objDebugWeinGartner.WeinCad.exe" to
"binDebugWeinGartner.WeinCad.exe". The process cannot access the file
'binDebugWeinGartner.WeinCad.exe' because it is being used by another 
process.    

Maintenant, j'ai compris que tuer le processus

Weingartner.WeinCad.vhost.exe

fonctionne (parfois) mais cela me tape sur les nerfs. De toute façon pour arrêter ce qui se passe?

Mes paramètres de débogueur sont

enter image description here enter image description here

272
demandé sur Ogglas 2013-08-07 16:01:55

30 réponses

J'ai rencontré des messages d'erreur similaires dans Visual Studio 2013.

la plupart du temps, j'ai constaté que cette situation s'est produite lorsqu'un processus de débogage a été interrompu à cause d'une exception.

quand clean+build n'a pas résolu ce problème pour moi, j'ai eu du succès en faisant ce qui suit:

  • Fermeture De Visual Studio
  • supprimant les dossiers bin et obj , et
  • Réouverture Du Studio Visuel.

ce "bogue" existe depuis Visual Studio 2003.

enfin, j'ai aussi trouvé que je peux souvent surmonter ce problème en renommant simplement le fichier exécutable et en le supprimant.

274
répondu Gerard 2018-02-22 13:12:01

dans Visual Studio Premium 2013 (Mise à jour 3), j'ai résolu ce problème avec une doublure pré-construction:

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)

ceci supprime gracieusement tous les anciens fichiers PDB (si possible), puis renomme tout ce qui reste avec une extension .old.pdb . Un bel effet secondaire est que si l'ancien PDB est toujours verrouillé, il ajoute juste un autre .ancien morceau au nom de fichier, et ils tous obtenir nettoyé la prochaine fois que vous redémarrez Visual Studio et faire une construction.

par exemple, la session de construction / débogage 1 laisse MyProject.pdb verrouillé.

La prochaine fois que vous construisez:

MyProject.pdb --> MyProject.old.pdb

ensuite, la session de construction / débogage 2 est lancée, et les deux MyProject.pdb et MyProject.old.pdb sont toujours verrouillés:

MyProject.old.pdb --> MyProject.old.old.pdb

MyProject.pdb --> MyProject.old.pdb

enfin, redémarrage visuel Studio et faire une nouvelle build de se débarrasser de ces deux, et de poursuivre le processus, comme d'habitude.

100
répondu Geoff 2014-08-11 20:22:57

c'est parce que vous avez fermé votre application, mais elle est toujours en arrière-plan.

solution temporaire:

  • aller au Gestionnaire des tâches ( Ctrl + Alt + Esc ).
  • aller à L'onglet Processus et trouver" votre nom de projet.EXE."
  • cochez la Case "Afficher les processus de tous les utilisateurs" si vous ne pouvez pas trouver votre processus.
  • terminer le Processus.

solution permanente: vous devez fermer votre application par codage. Voici le code...

System.Windows.Forms.Application.Exit();

vous devez mettre ce code dans l'événement de fermeture du formulaire dans toute forme. Exemple:

private void frm_menu_FormClosing(object sender, FormClosingEventArgs e)
{
    System.Windows.Forms.Application.Exit();
}
49
répondu Rushi Daxini 2018-05-24 16:02:17

the .vhost.exe est un processus de débogage, il semble donc que le processus en cours de débogage n'a pas été correctement fermé. Il y a des Chances que vous ayez un bogue qui le maintient en vie et qui n'arrête pas le processus de débogage correctement - il y a des options pour se détacher du processus lorsque vous cliquez sur "Arrêter de déboguer" au lieu de réellement tuer le débogueur donc peut-être que vous avez cet ensemble.

Mais c'est ça le problème - le fichier que vous tentez de copier est verrouillé (c'est à dire encore utilisés) par les OS donc il empêche la copie. Assurez-vous que le fichier est gratuit et que vous pourrez le copier.

25
répondu gbjbaanb 2013-08-07 12:07:48

Je l'ai résolu en tuant IISExpress dans le Gestionnaire des tâches

20
répondu pat capozzi 2014-01-15 18:50:04

vous devez désactiver votre antivirus (surtout s'il s'agit d'un Avast) et réessayer. Il m'a aidé. Le problème est que le débogueur/builder crée la .fichier exe qui est identifié comme une Menace par Avast et donc supprimé juste avant qu'il puisse être exécuté par VS.

20
répondu Pitrs 2014-06-17 14:38:15

j'ai pu corriger ce problème (VS 2010) en fournissant la suite de l'action de pré-construction;

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
15
répondu Nair 2015-07-24 14:01:29

citation:

une solution est de mettre cela dans la propriété de la ligne de commande pré-build event du > projet (dans l'onglet build Events):

"151910920 Extrait De Code",

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
11
répondu Zheng Qiang 2016-12-08 17:14:58

Tuer le processus w3wp.exe (IIS) résoudra souvent ce problème.

généralement, vous pouvez connaître le processus qui a le verrou sur le fichier en naviguant vers le dossier bin et en essayant de le supprimer. Le message d'erreur qui s'affiche, dans le cas où un autre processus l'utilise, contiendra le nom du processus qui doit être tué.

6
répondu Ogglas 2015-10-20 17:10:55

Exception

dans certains cas dans Visual Studio quand vous (construire || reconstruire) sur running IISExpress vous face à cette Exception:

impossible de copier fichier " obj\Debug\YourProjectName.dll " pour bin\YourProjectName.DLL." le processus ne peut pas accéder au fichier 'bin\YourProjectName.dll" parce qu'il est utilisé par un autre processus

Solution

  1. clic droit sur le projet web qui doit être construit.
  2. Cliquez sur propriétés.
  3. sélectionnez L'onglet Build Events sur le côté gauche.
  4. dans Pre-build events ligne de commande Coller ces 2 lignes:
tasklist /fi "imagename eq iisexpress.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "iisexpress.exe"

Vous êtes bon 2 GO!

5
répondu iTachi 2016-04-09 17:47:27

j'ai fait face au même problème sur VS 2012 Version 11.0.60610.01 mise à jour 3 sur Windows 8

il n'y avait pas de fenêtres de concepteur ouvertes et le projet était une simple application de console.

la suppression du processus vshost accédant au fichier ne fonctionne pas la plupart du temps puisque le processus n'accède pas au fichier.

la solution de contournement la plus simple qui fonctionne et prend le moins de temps est de supprimer le projet de la solution, construire un autre projet dans la solution et ensuite ajouter l'original back.

c'est un irritant et une perte de temps mais c'est la moins chère de toutes les autres options que je connais.

Espérons que cette aide...

4
répondu Ashwin J 2013-09-26 00:02:16

je pense que je l'ai résolu en retirant le crochet à Break all processes when one process breaks dans les options de débogage (première capture d'écran de l'op->deuxième option).

Il a été construit / courir bien depuis un certain temps depuis que je l'ai unchecké.

J'utilise le connecteur Net MySql et les commandes DevExpress dans mon projet. Peut-être que l'un d'eux ne disposait pas de connexions, de fixations, etc. eh bien à cause de cet indicateur étant activé.

ÉDITÉ: certainement, il fonctionne! Pas plus "Impossible de copier le fichier" et plus d'erreurs de concepteur de formulaires.

4
répondu Ivan Ferrer Villa 2015-06-23 16:28:13

il semble qu'en changeant le nom d'Assemblée d'un projet résolve le problème.

donc à la place de ce

enter image description here

je le change en

enter image description here

notez que je viens de le changer de Increment and Recall à Increment_Recall , je viens d'enlever les espaces. il fonctionne maintenant bien pour moi.

4
répondu Cary Bondoc 2015-10-19 05:06:31

ajouter dans l'événement pré-construction de votre projet maître taskkill /f /fi "pid gt 0" /im "votre processus.vshost.exe 151910920"

4
répondu sofsntp 2015-11-12 16:17:13

ma contribution de 10 cents.

j'ai encore ce problème occasionnellement sur VS 2015 Update 2.

j'ai trouvé que changer de cible de compilation résout le problème.

essayez ceci: si vous êtes dans DEBUG switch vers RELEASE and build, puis de nouveau dans DEBUG. Le problème a disparu.

Stefano

3
répondu Stefano.net 2016-03-01 07:04:05

Je ne peux pas donner de solution pour empêcher cela de se produire, mais vous pouvez au moins renommer le fichier verrouillé (Windows explorer, ou la fenêtre de commande classique) et puis compiler/construire. Pas besoin de redémarrer ou redémarrer VS201x. Avec une certaine expérience, vous pouvez ajouter un script de pré-construction pour supprimer de vieux fichiers ou renommer alors hors de la façon en cas il y a une serrure.

2
répondu hopperpl 2014-04-10 15:34:37

voir cette autre réponse . Fondamentalement, vous pourriez avoir MSBuild.processus exe tournant en arrière-plan et consommant des fichiers de ressources. Si vous avez des tâches pré ou post construction qui provoquent le démarrage D'un MSBuild via la ligne de commande, essayez d'ajouter le drapeau "/ nr: false " à cette commande. Mais encore une fois, voir la réponse précédente pour plus de détails.

2
répondu Josh Pavoncello 2017-05-23 12:18:30

@Geoff's ( https://stackoverflow.com/a/25251766/3739540 ) la réponse est bonne, mais elle lance le code d'erreur 1 sur recompile.

voici ce qui a fonctionné pour moi (2>nul 1>nul à la fin + sortie 0):

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb) 2>nul 1>nul
(if exist "$(TargetDir)*old.dll" del "$(TargetDir)*old.dll") & (if exist "$(TargetDir)*.dll" ren "$(TargetDir)*.dll" *.old.dll) 2>nul 1>nul
exit 0
2
répondu Michael Ribbons 2017-05-23 12:10:48

si vous êtes déboguer les modèles T4 , alors cela arrive tout le temps. Ma solution (avant que MS ne corrige ceci) serait juste de tuer ce processus:

Gestionnaire De Tâches --> Utilisateur --> T4VSHostProcess.exe

ce processus n'apparaît que lorsque vous débuggez un modèle T4, et non lorsque vous en exécutez un.

2
répondu Pompair 2016-02-19 09:52:08
  1. propriétés Ouvertes du projet [ menu > Projet > Propriétés]
  2. choisissez "debug" tab
  3. Décochez la case "Activer le processus d'hébergement visual studio"
  4. Démarrer le débogage [F5]
  5. vous recevrez un avertissement de sécurité , juste"ok". Permet à l'application en cours d'exécution
  6. arrêtez de déboguer.
  7. Cochez l'option "Activer le processus d'hébergement visual studio" , sous l'onglet débogage,
  8. maintenant, essayez de démarrer le débogage , vous ne verrez plus d'erreur

[travailler pour moi]

2
répondu Novpiar Effendi 2016-05-07 23:10:08

suivre les étapes ci-dessous

  1. Ouvrir Le Gestionnaire Des Tâches ( Ctrl + Alt + Suppr )
  2. sous Performance onglet Sélectionner < nom du projet.exe .
  3. cliquez sur End Process.
  4. maintenant construire la solution.

ci-dessus étapes résolues erreur permanente:)

2
répondu Akshay Bagi 2018-01-30 03:50:47

si aucune des réponses ne fonctionne, essayez cette simple vérification. Trouver pour tout MSbuild.exe en cours d'exécution et la tenue de votre projet EXE. Tuer MSBuild.exe et vous devriez être bon d'aller.

2
répondu Gentleman 2018-04-23 13:01:20

j'ai enfin la solution. Pourquoi nous ne pouvons pas continuer le debug après le premier debug parce que le premier exe de debug est toujours en cours d'exécution. Ainsi, après le premier débogage, vous devez aller à L'onglet Gestionnaire des tâches -> processus -> [exe votre nom de projet] mettre fin au processus exe.

ça marche pour moi :)

1
répondu chevhfghfghfgh 2014-06-06 09:55:06

cette question a été le premier résultat à la recherche de l'erreur suivante:

ne pouvait pas copier le fichier "..."parce qu'il n'a pas été trouvé.

lors de la construction dans Visual Studio 2013 (Mise à jour 3).

Solution: Désinstallation des "outils électriques de productivité" dans Visual Studio 2013.

https://connect.microsoft.com/VisualStudio/feedback/details/533411

1
répondu AlejandroC 2014-08-07 13:50:27

dans mon cas, il était ReSharper essais unitaires runner(plus NUnit tests, jamais eu un tel problème avec MsTests). Après avoir tué le processus, a été en mesure de reconstruire le processus, sans redémarrer OS ou VS2013

1
répondu Uriil 2015-01-15 14:16:51

Je n'avais pas réalisé que j'avais encore mon débogueur attaché et j'essayais de construire dans la même instance Visual Studio. Une fois que j'ai arrêté le débogueur, j'ai pu le construire.

1
répondu Valamas 2015-02-13 00:50:59

tue le vstest.executionengine.exe processus résout cette question 90% du temps pour moi. Si cela ne fonctionne pas, alors aussi tuer QTAgent32.exe et ensuite supprimer les dossiers /bin et /obj pour le projet en question fonctionne.

C'est la partie la plus irritante de ma journée de travail. :)

1
répondu dgundersen 2015-06-09 20:30:29

pour moi, C'était L'antivirus Avast qui ne laissait pas visual studio écrire/lire/exécuter le fichier. J'ai donc dû ajouter le dossier Visual studio 2010/2012 à la liste d'exclusion d'antivirus. Et juste après ce baam... elle fonctionne.

1
répondu Alex 2015-07-01 01:29:22

assurez-vous de fermer toutes les instances wcfSvcHost et réessayez. Il a travaillé pour moi!

1
répondu Ocelot 2015-07-16 02:52:11

j'ai remarqué certaines réponses qui ont résolu mon problème, mais, juste au cas où quelqu'un a le même problème que moi.

SI VOUS UTILISEZ UNE APPLICATION CONSOLE: AVANT DE FAIRE QUOI QUE CE SOIT D'AUTRE.

assurez-vous d'avoir fermé toutes les fenêtres de console qui aurait été ouvert à partir d'une version précédente. Par exemple, je testais juste du code dans une application de console, Je ne me suis pas rendu compte que la fenêtre de console d'une des fois précédentes j'ai lancé mon le programme a été ouvert. Pendant cette session, je déboguais, la fenêtre a été repoussée vers l'arrière et je n'ai pas pu la voir. Je dis juste que ça pourrait être votre problème, donc vérifiez que ce n'est pas le problème.

1
répondu Eric Bishard 2015-08-08 08:31:20