156 votes

Commande de copie terminé avec le code 4 lors de la construction d' - Visual Studio redémarrage résout

Chaque maintenant et puis quand j'ai créer ma solution ici (avec 7 projets), j'ai redouté de Commande de copie terminé avec le code 4' erreur, dans Visual Studio 2010 Premium ed.

C'est à cause de la poste-créer un événement à ne pas être en mesure de passer à travers.

Voici ce qui résout le problème, temporairement

  • Parfois: Un redémarrage de Visual Studio et je suis en mesure de construire la solution
  • Parfois: à la Fois un redémarrage de Visual Studio et mon gestionnaire de fichier de votre choix (Q-Dir 4.37) elle n'en résout.

Voici ce que le post-événement de construction ressemble à:

xcopy "$(SolutionDir)Solution Items\References\*.dll" "$(TargetDir)" /Y

Lorsque vous obtenez la commande de copie terminé avec le code [insérer valeur] erreur, c'est normalement pour les raisons suivantes:

  • autorisations de lecture / écriture
  • fichiers manquants
  • mal répertoires

Cependant, évidemment, de temps en temps quand j'ai construit la solution, il n'y a pas de problème.

Pour info, j'ai désinstallé ReSharper 5.1.1 il y a deux semaines et Visual Studio a été de me donner quelques erreurs depuis (parmi eux de ne pas être en mesure de debug). Je l'ai ré-installé Visual Studio, et ça fonctionne mieux depuis, mais toujours obtenir ce problème. Pourrait-il avoir à faire avec certains ReSharper truc quelque part?

Avez-vous eu le même problème et l'a résolu? Ou avez-vous une solution possible?

Des acclamations.

206voto

Vemul Points 1031

Alors qu' /C peut ignorer les erreurs, il pourrait ne pas être la vraie solution, car il pourrait y avoir des fichiers qui DOIVENT être copiés dans le but de le construire à être couronnée de succès.

Le problème le plus commun est l'absence de guillemets autour de la pré-commande définie par les balises (comme $TargetDir). Lorsque l'on crée des différentes branches et les chemins d'accès dans le code ou TSF, il y a une très grande chance pour que cela se produise.

Parfois, si le fichier est en lecture seule, cela va entraîner des problèmes. Ajouter l' /R option pour permettre de lire uniquement les fichiers à copier. Vous pouvez trouver la liste des options disponibles:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/xcopy.mspx?mfr=true

Un autre problème possible est que le dossier ne peut pas être consulté. Si, en essayant d'effectuer "start xcopy" au lieu de "xcopy". Cela ouvre une fenêtre de commande mais avec l'admin privilèges.

76voto

Preet Sangha Points 39414

J'ai invariablement trouvé que c'était un problème de verrouillage de fichier. Code 4 est Ne peut pas Accéder à un Fichier. Une solution partielle que j'ai trouvé est d'utiliser l'option /C pour xcopy (qui continue d'erreur). Pas vraiment une solution, mais surtout, il a cessé de mes construit à partir de l'échec.

Une autre solution qui ne fonctionne que sur 32 bits est d'utiliser le logiciel de l'outil de libération de la windows poignées sur le fichier avant de le copier.

Edit: je viens de réalisé qu'elle fonctionne sous les systèmes 64 bits.

20voto

ValidfroM Points 967

J'ai traversé la même erreur, mais c'est pas parce que le fichier est verrouillé,mais le fichier est manquant.

La raison pour laquelle VS essayé de copier un pas de fichier existant ,est arriver; de la Post-build de commande de l'événement.

Après j'ai vidé, le problème est résolu.

Mise à JOUR:

@Rhughes a commenté, "

La vraie question est de savoir comment obtenir la commande ici pour travailler, plutôt que de le supprimer.

" il est tout à fait juste.

enter image description here

6voto

akka16 Points 41

Dans le cas où l'événement post-construction contient des copier/commande xcopy pour copier la sortie de la construction d'un répertoire(qui est généralement la plus courante post opération de construction), le problème peut se produire dans le cas où le chemin complet du répertoire, soit de la source ou de la cible destinations contiennent les noms des dossiers qui comportent des espaces. Supprimer de l'espace pour le nom du répertoire(s) et d'essayer.

6voto

Ganesh Patil Points 21

Comme mentionné dans de nombreux sites, il y a plusieurs raisons à cela. Pour moi, c'était à cause de la longueur de la Source et de la Destination (longueur de Chemin d'accès). J'ai essayé de xcopy dans l'invite de commande et j'ai été incapable de type de la source complet et le chemin d'accès (d'après certains caractères il l'habitude de vous permettre de taper). J'ai ensuite réduit la longueur du chemin et a été en mesure d'exécuter. Espérons que cette aide.

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