[C#] Visual Studio에서 “xcopy가 코드 4로 종료되었습니다”라는 메시지가 표시 될 때 무엇이 ​​잘못되었는지

빌드 후 이벤트에 익숙하지 않기 때문에 프로그램에서 무엇이 잘못되었는지 약간 혼란 스럽습니다. Visual Studio 2010에서 컴파일 할 때 다음을 얻습니다.

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.    

이 오류에도 불구하고 프로그램 정상적으로 실행되는 것처럼 보이지만이 문제를 무시하고 나쁜 일이 발생하지 않기를 바랍니다. 이상하게도이 줄은 단일 명령 (첫 번째 xcopy)으로 시작되었지만 프로젝트를 계속 컴파일 (다른 문제, 대부분 참조)하는 동안 오류 메시지가 점점 더 커졌습니다. 무슨 일이 일어나고 있는지 아십니까?

편집 : 실패한 것처럼 보이는 빌드 후 이벤트는 다음과 같습니다.

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



답변

Xcopy 종료 코드 4는 ” 초기화 오류가 발생했습니다. 메모리 나 디스크 공간이 충분하지 않거나 명령 줄에 잘못된 드라이브 이름이나 잘못된 구문을 입력했습니다. “를 의미 합니다.

Visual Studio가 xcopy에 잘못된 인수를 제공하는 것 같습니다. 를 통해 빌드 후 이벤트 명령을 확인하십시오 Project > Right Click > Properties > Build Events > Post Build Event.

경우주의 $(ProjectDir)또는 유사한 매크로 측면 확장 결과 경로에 공백을, 그들은 필요한 큰 따옴표로 포장합니다. 예를 들면 :

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


답변

감시 탭을 “출력”으로 전환하고 xcopy 명령을 찾습니다. 때때로 여기에서 문제를 해결하는 데 도움이 될 수있는 더 많은 메시지 (실제 xcopy 출력)를 찾을 수 있습니다. 출력 탭이 보이지 않으면보기-출력 메뉴를 사용하여 표시하십시오.


답변

수락 된 답변 외에도 대상 폴더가 읽기 전용 인 경우에도 오류가 발생할 수 있습니다 (TFS 사용시 공통)


답변

소스 파일을 찾을 수없는 경우 xcopy 는 오류 코드 4 도 반환합니다 .


답변

xcopy 명령이 읽기 전용 파일을 덮어 쓰려고 할 때 ‘ exited with code 4 ‘오류를 받았습니다 . xcopy 명령에 / R 을 추가하여이 문제를 해결했습니다 . / R을 나타냅니다 읽기 전용 파일을 덮어 쓰기해야한다

이전 명령 :

XCOPY /E /Y "$(ProjectDir)source file" "destination"

새로운 명령

XCOPY /E /Y /R "$(ProjectDir)source file" "destination"


답변

다른 답변에서 설명했듯이 종료 코드 4 에는 많은 원인이있을 수 있습니다.

결과 경로 이름이 최대 허용 길이를 초과 하는 경우를 발견 했습니다 ( 여기 처럼 ).

영향을받는 빌드 후 이벤트에 대해 xcopy를 robocopy로 대체했습니다. robocopy는 경로를 약간 다르게 처리하는 것으로 보이며 xcopy가 처리 할 수없는 복사 작업을 완료 할 수있었습니다.


답변

의미 :

초기화 오류가 발생했습니다. 메모리 또는 디스크 공간이 충분하지 않거나 명령 줄에 잘못된 드라이브 이름 또는 잘못된 구문을 입력했습니다.

그래서 기본적으로 그것은 무엇이든 될 수 있습니다. 명령 프롬프트에서 한 번에 하나씩 명령을 실행하여 어떤 명령이 문제를 일으키는 지 파악하십시오.