때때로 여기에 솔루션을 빌드 할 때 (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를 실행하면 정상적으로 작동합니다.