IT

왜 빌드 후 단계 (xcopy)가 TeamCity 빌드에서 코드 2와 함께 종료합니까?

lottoking 2020. 9. 11. 08:17
반응형

왜 빌드 후 단계 (xcopy)가 TeamCity 빌드에서 코드 2와 함께 종료합니까?


내 클라이언트 솔루션의 일부 프로젝트에는 빌드 후 이벤트 ( xcopy특정 폴더에 대한 빌드 출력)가 있습니다. 이 로컬에서 빌드 할 때 잘 작동합니다. 그러나 인 TeamCity에, 나는 가끔 얻을

xcopy [...] 코드 2로 종료.

일반 사용하면 copy코드 1로 종료됩니다. 복사되는 특정 파일이 동일하지 않는 것이 좋습니다 파일 잠금과 관련이있을 것이 예상 공유 대상에서 잠글 수 있습니다. 내가 사용하는 /y파일을 쓰기 쓰기에없는 프롬프트.

TeamCity에서는 실패하지만 로컬에서는 실패하는 이유는 무엇입니까?


/Yxcopy와 함께 스위치 를 제공하지만 xcopy가 복사하는 것이 파일인지 디렉토리인지 알지 계속 오류가 계속 발생합니다. 이 오류는 "exited with code 2"로 나타납니다. 명령 프롬프트에서 동일한 xcopy를 실행하면 xcopy가 파일 또는 디렉터리의 응답을 요청하는 것을 볼 수 있습니다.

자동화 된 빌드 로이 문제를 해결 비용 파이프를 사용하여 미리 정의 된 응답으로 에코 할 수 있습니다.

복사하는 것이 파일이라고 말하려는 경우 echo in F:

echo F|xcopy /y ...

복사하는 것이 디렉토리라고 말하려는 경우 echo in D:

echo D|xcopy /y ...

방법 위의 문제는 xcopy 대신 복사 명령을 사용하여 사용할 수 있습니다.

copy /y ...

그러나 최종 파일 대상으로 이어지는 존재하지 않는 디렉토리가있는 경우 "exited with code 1"이 발생합니다.

기억하십시오 : /C스위치와 xcopy를 사용하십시오 .


내 경로 끝에 \를 추가하여 오류 코드 2를 수정했습니다.이 코드가 제외 된 xcopy는 폴더가 아닌 파일이라고 생각합니다.


빌드 후 이벤트에서 xcopy를 사용하는 경우 / C 외에 / Y 스위치를 사용합니다.

/C           Continues copying even if errors occur.
/Y           Suppresses prompting to confirm you want to overwrite an existing file.

이 문제에 대한 수정 사항은 bin 폴더로 이동하여 하위 폴더가 있는지 확인하는 것이 었습니다. 하위 폴더가 수동으로 생성되면 빌드 프로세스가 사용하여 완료됩니다.


copy나를 위해 고쳤습니다. xcopy with /c /y작동하지 않았다. 나는 출구 4를 가지고 있었기 때문에 함께 xcopy갔지만 주위에 따옴표가 필요했습니다 ($TargetPath).

내 펼쳐 :

if $(ConfigurationName) == Debug copy "$(TargetPath)" "$(SolutionDir)\Folder\bin\Debug\$(TargetFileName)"

아마도 git과 함께 TeamCity를 사용하고있을 것입니다. 모든 것을 복사하려는 폴더 가 git 저장소에 있는지 확인하십시오 . 일반적으로 git aviod는 빈 프로젝트 폴더를 저장소에 추가하는 방법에 xcopy오류가 발생합니다.

빈 폴더에 빈 텍스트 파일을 추가하고 커밋하고 저장소에 폴더를 만들 것을 볼 수 있습니다.

참고 URL : https://stackoverflow.com/questions/7835304/why-would-a-post-build-step-xcopy-occasionally-exit-with-code-2-in-a-teamcity

반응형