Every now and then when I build my solution here (with 7 projects in it) I get the dreaded 'Command copy exited with code 4' error, in Visual Studio 2010 Premium ed.
This is because of the post-build event not being able to go through.
Here's what solves the problem, temporarily
- Sometimes: A restart of Visual Studio and I'm able to build the solution
- Sometimes: Both a restart of Visual Studio and my file manager of choice (Q-Dir 4.37) solves it.
Here's what the post-build event looks like:
xcopy "$(SolutionDir)Solution Items\References\*.dll" "$(TargetDir)" /Y
When you get the command copy exited with code [insert value] error, it's normally because of the following:
- read / write permissions
- missing files
- wrong directories
However - obviously at times when I build the solution, there's no problem.
FYI, I uninstalled ReSharper 5.1.1 two weeks ago and Visual Studio's been giving me some errors since then (among them not being able to debug). I re-installed Visual Studio and it's working better since then, but still get this problem. Could it have to do with some ReSharper stuff being somewhere?
Have you had the same problem and solved it? Or do you have any possible solution to it?
Cheers.
As mentioned in many sites, there are various reasons for this. For me it was due to the length of Source and Destination (Path length). I tried xcopy in the command prompt and I was unable to type the complete source and path (after some characters it wont allow you to type). I then reduced the path length and was able to run. Hope this helps.
I am getting something similar using an xcopy with the /exclude option. In my case, I found that editing the post-build event (something harmless like a newline after the command) and saving the project causes the error to happen. Re-saving the file specified in the /exclude option causes it to work again.
To expand on rhughes answer,
The robocopy works beautifully, just incase you need to include sub directories you can use
/e
to include subs and copy empty directories or/s
to include subs excluding empty directories.Also robocopy will report back a few things like if new files were copied, this will cause VS to complain since anything above 0 is a failure and robocopy will return 1 if new files have been found. Its worth to mention that robocopy first compares the Source/Dest and only copies the updated/new files.
To get around this use:
If you are running Windows 7 onward, you can try the new 'robocopy' command:
More information about robocopy can be found here.
I have also faced this problem.Double check the result in the error window.
In my case, a tailing
\
was crashing xcopy (as I was using$(TargetDir)
). In my case$(SolutionDir)..\bin
. If you're using any other output, this needs to be adjusted.Also note that
start xcopy
does not fix it, if the error is gone after compiling. It might have just been suppressed by the command line and no file has actually been copied!You can btw manually execute your xcopy commands in a command shell. You will get more details when executing them there, pointing you in the right direction.
I found that setting the file's Copy To Output Directory parameter to Copy Always seems to have cleared up the locking issue. Although now I have 2 copies of the files and need to delete one.