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
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
etobj
, 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.
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.
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();
}
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.
Je l'ai résolu en tuant IISExpress dans le Gestionnaire des tâches
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.
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"
citation:
"151910920 Extrait De Code",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):
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
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é.
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
- clic droit sur le projet web qui doit être construit.
- Cliquez sur propriétés.
- sélectionnez L'onglet Build Events sur le côté gauche.
- 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!
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...
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.
il semble qu'en changeant le nom d'Assemblée d'un projet résolve le problème.
donc à la place de ce
je le change en
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.
ajouter dans l'événement pré-construction de votre projet maître taskkill /f /fi "pid gt 0" /im "votre processus.vshost.exe 151910920"
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
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.
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.
@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
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.
- propriétés Ouvertes du projet [ menu > Projet > Propriétés]
- choisissez "debug" tab
- Décochez la case "Activer le processus d'hébergement visual studio"
- Démarrer le débogage [F5]
- vous recevrez un avertissement de sécurité , juste"ok". Permet à l'application en cours d'exécution
- arrêtez de déboguer.
- Cochez l'option "Activer le processus d'hébergement visual studio" , sous l'onglet débogage,
- maintenant, essayez de démarrer le débogage , vous ne verrez plus d'erreur
[travailler pour moi]
suivre les étapes ci-dessous
- Ouvrir Le Gestionnaire Des Tâches ( Ctrl + Alt + Suppr )
- sous Performance onglet Sélectionner < nom du projet.exe .
- cliquez sur End Process.
- maintenant construire la solution.
ci-dessus étapes résolues erreur permanente:)
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.
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 :)
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
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
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.
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. :)
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.
assurez-vous de fermer toutes les instances wcfSvcHost et réessayez. Il a travaillé pour moi!
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.