[visual-studio] 빌드시 코드 4로 명령 복사가 종료되었습니다.-Visual Studio를 다시 시작하면 문제가 해결됩니다.

때때로 여기에 솔루션을 빌드 할 때 (7 개의 프로젝트가 있음) Visual Studio 2010 Premium ed에서“코드 4로 종료 된 명령 사본 ”오류가 발생합니다.

이는 빌드 후 이벤트가 진행되지 않기 때문입니다.

일시적으로 문제를 해결하는 방법은 다음과 같습니다.

  • 때때로 : Visual Studio를 다시 시작하면 솔루션을 빌드 할 수 있습니다.
  • 때때로 : Visual Studio를 다시 시작하고 선택한 파일 관리자 (Q-Dir 4.37)가 문제를 해결합니다.

빌드 후 이벤트는 다음과 같습니다.

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

코드 [삽입 값] 오류와 함께 명령 사본이 종료되면 일반적으로 다음과 같은 원인이 있습니다.

  • 읽기 / 쓰기 권한
  • 누락 된 파일
  • 잘못된 디렉토리

그러나 분명히 솔루션을 빌드 할 때 아무런 문제가 없습니다.

참고로, 나는 2 주 전에 ReSharper 5.1.1을 제거했으며 그 이후로 Visual Studio에서 오류가 발생했습니다 (디버그 할 수 없음). Visual Studio를 다시 설치했지만 그 이후로는 더 잘 작동하지만 여전히이 문제가 발생합니다. ReSharper와 관련이있을 수 있습니까?

같은 문제가 있고 해결 했습니까? 아니면 가능한 해결책이 있습니까?



답변

나는 이것이 파일 잠금 문제라는 것을 항상 발견했다. 코드 4는 파일에 액세스 할 수 없습니다. 내가 찾은 부분 해결책 중 하나는 xcopy에 / C 옵션을 사용하는 것입니다 (오류가 계속 발생합니다). 실제로 해결책은 아니지만 대부분 빌드가 실패하는 것을 막았습니다.

32 비트에서만 작동하는 또 다른 솔루션은 잠금 해제 도구를 사용 하여 복사하기 전에 파일의 창 핸들을 해제하는 것입니다.

편집 : 64 비트에서도 작동한다는 것을 깨달았습니다.


답변

/C오류를 무시할 수는 있지만 빌드가 성공하려면 반드시 복사해야하는 파일이있을 수 있으므로 실제 솔루션이 아닐 수도 있습니다.

가장 일반적인 문제는 사전 정의 된 명령 태그 (예 🙂 주위에 누락 된 따옴표 $TargetDir입니다. 코드 나 TFS에서 다양한 브랜치와 경로를 만들면 이런 일이 발생할 가능성이 매우 높습니다.

파일이 읽기 전용 인 경우에도 문제가 발생할 수 있습니다. /R읽기 전용 파일을 복사 할 수 있는 옵션을 추가하십시오 . 사용 가능한 옵션 목록은 다음에서 찾을 수 있습니다.

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

또 다른 가능한 문제는 기본 폴더에 액세스 할 수 없다는 것입니다. 그렇다면 "start xcopy"대신 대신 수행해보십시오 "xcopy". 관리자 권한이있는 다른 명령 창이 열립니다.


답변

나는 같은 오류를 겪었지만 파일이 잠겨 있지 않기 때문에 파일이 없습니다.

VS가 기존 파일이 아닌 파일을 복사하려고 시도한 이유는 빌드 후 이벤트 명령 때문입니다.

내가 그것을 정리 한 후 문제가 해결되었습니다.

최신 정보:

@rhughes는 다음과 같이 언급했습니다.

실제 문제는 명령을 제거하는 대신 여기에서 명령을 수행하는 방법입니다.

그리고 그는 절대적으로 옳습니다.

여기에 이미지 설명을 입력하십시오


답변

나는 또한이 문제에 직면했다. 오류 창에서 결과를 두 번 확인하십시오.

제 경우에는 꼬리 \가 xcopy와 충돌했습니다 (을 사용하는 것처럼 $(TargetDir)). 내 경우에는 $(SolutionDir)..\bin. 다른 출력을 사용하는 경우 조정해야합니다.

또한 start xcopy컴파일 후 오류가 사라지면 수정하지 마십시오. 명령 행에 의해 억제되었을 수 있으며 실제로 파일이 복사되지 않았습니다!

명령 쉘에서 xcopy 명령을 수동으로 실행할 수 있습니다. 당신이 올바른 방향으로 당신을 가리키는, 그들을 실행할 때 자세한 내용을 얻을 수 있습니다.


답변

빌드 후 이벤트에 빌드 출력을 일부 디렉토리 (일반적으로 가장 일반적인 빌드 후 작업)에 복사하기위한 copy / xcopy 명령이 포함 된 경우 소스 또는 대상 대상의 전체 디렉토리 경로에 다음을 포함하는 폴더 이름이 포함 된 경우 문제가 발생할 수 있습니다. 공백. 디렉토리 이름을위한 공간을 제거하고 시도하십시오.


답변

많은 사이트에서 언급했듯이 여기에는 여러 가지 이유가 있습니다. 나에게 그것은 소스와 목적지의 길이 (경로 길이) 때문이었습니다. 명령 프롬프트에서 xcopy를 시도했는데 전체 소스와 경로를 입력 할 수 없었습니다 (일부 문자 후에는 입력 할 수 없음). 그런 다음 경로 길이를 줄이고 실행할 수있었습니다. 도움이 되었기를 바랍니다.


답변

관리자 모드에서 VS를 실행하면 정상적으로 작동합니다.