Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

c# - What is going wrong when Visual Studio tells me "xcopy exited with code 4"

I'm not very familiar with post-build events, so I'm a little confused as to what's going wrong with my program. When compiling in visual studio 2010, I get the following:

The command "xcopy C:UsersMePathFoo.barLibrarydsoframer.ocx C:UsersMePathFoo.barinDebug /Y /E /D
xcopy C:UsersMePathFoo.barApplicationFiles C:UsersMePathFoo.barinDebug /Y /E /D
xcopy C:UsersMePathurl C:UsersMePathFoo.barinDebug /Y /E /D
rmdir /S /Q C:UsersMePathFoo.barinDebug.gwt-tmp" exited with code 4.    

The program appears to run fine, despite this error, but I don't want to just ignore this issue and hope nothing bad happens. Strangely, this line started out as only a single command (the first xcopy) but as I continued to compile the project (fixing other problems, mostly references) the error message expanded larger and larger. Any idea what could be going on?

Edit: Here are the postbuild events that seem to be failing --

xcopy $(ProjectDir)Librarydsoframer.ocx $(TargetDir) /Y /E /D
xcopy $(ProjectDir)ApplicationFiles $(TargetDir) /Y /E /D
xcopy $(SolutionDir)com.myUrl.gwtwww $(TargetDir) /Y /E /D
rmdir /S /Q $(TargetDir).gwt-tmp
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Xcopy exit code 4 means "Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line."

It looks like Visual Studio is supplying invalid arguments to xcopy. Check your post-build event command via Project > Right Click > Properties > Build Events > Post Build Event.

Note that if the $(ProjectDir) or similar macro terms have spaces in the resulting paths when expanded, then they will need to be wrapped in double quotes. For example:

xcopy "$(ProjectDir)Librarydsoframer.ocx" "$(TargetDir)" /Y /E /D1

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...