145 votes

Qu'est-ce qui ne va pas quand Visual Studio me dit "xcopy est sorti avec le code 4"

Je ne suis pas très familier avec les événements après génération, donc je suis un peu confus quant à ce qui va mal avec mon programme. Lors de la compilation dans visual studio 2010, je reçois le texte suivant:

The command "xcopy C:\Users\Me\Path\Foo.bar\Library\dsoframer.ocx C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\Foo.bar\ApplicationFiles C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\url\ C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
rmdir /S /Q C:\Users\Me\Path\Foo.bar\bin\Debug\.gwt-tmp" exited with code 4.    

Le programme semble fonctionner correctement, en dépit de cette erreur, mais je ne veux pas simplement ignorer ce problème et espère que rien de mauvais ne se passe. Étrangement, cette ligne a commencé comme une seule commande (la première xcopy) mais comme j'ai continué à compiler le projet (pose d'autres problèmes, la plupart des références) le message d'erreur étendu de plus en plus grandes. Toute idée de ce qui pourrait se passer?

Edit: Voici le postbuild événements qui semblent échouer --

xcopy $(ProjectDir)Library\dsoframer.ocx $(TargetDir) /Y /E /D
xcopy $(ProjectDir)ApplicationFiles $(TargetDir) /Y /E /D
xcopy $(SolutionDir)com.myUrl.gwt\www $(TargetDir) /Y /E /D
rmdir /S /Q $(TargetDir).gwt-tmp

196voto

Mark Cidade Points 53945

Xcopy code de sortie 4 signifie "Initialisation erreur s'est produite. Il n'y a pas assez de mémoire ou d'espace disque, ou que vous avez entré est invalide nom du lecteur ou de la syntaxe non valide sur la ligne de commande."

Il ressemble à Visual Studio fournit des arguments non valides à xcopy. Vérifiez votre post-construire un script d'événement.

Notez que si l' $(ProjectDir) ou similaire macro modalités d'avoir des espaces dans les tracés obtenus lors de son expansion, puis ils devront être enveloppés dans des guillemets doubles. Par exemple:

xcopy "$(ProjectDir)Library\dsoframer.ocx" "$(TargetDir)" /Y /E /D1

39voto

Felice Pollano Points 20105

Basculez l'onglet de surveillance sur "sortie" et recherchez la commande xcopy. Parfois, vous trouvez ici un message supplémentaire (la sortie réelle de xcopy) qui pourrait vous aider à résoudre le problème. Si vous ne voyez pas l'onglet de sortie, utilisez le menu View-Output pour l'afficher.

35voto

Pieter Points 616

En plus de la réponse acceptée, l'erreur peut également se produire lorsque le dossier de destination est en lecture seule (Commun en cas d'utilisation de TFS).

26voto

Der_Meister Points 336

Si le fichier source n'est pas trouvé, xcopy renvoie également le code d'erreur 4 .

8voto

CodeFox Points 301

Comme d'autres réponses expliquer, code de sortie 4 peut avoir de nombreuses causes.

J'ai remarqué un cas, où résultant noms de chemin d'accès de dépassement de la longueur maximale autorisée (comme ici).

Je l'ai remplacé par xcopy robocopy pour le post-construction de l'événement; robocopy semble gérer les chemins d'accès légèrement différente et a pu terminer la tâche de copie que xcopy a été incapable de gérer.

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