2011-06-14 2 views
2

서버가 VS2008.SLN 파일을 만들고 다른 작업을 수행하는 연속 통합 프로세스를 설정하려고합니다.MSBUILD VS VS2008 빌드의 차이점

Visual Studio에서 빌드 할 때 모든 것이 잘 작동합니다. 그러나 CI 서버 (MSBUILD 사용)를 사용하여 빌드 할 때 많은 MSB3191 (디렉토리를 만들 수 없습니다 ...)에서 빌드가 실패합니다.

내 SLN에서 다양한 프로젝트에 기본이 아닌 출력 경로가 있습니다. 모든 출력물을 하나의 위치로 복사하는 것이 문제를 일으키는 것으로 보입니다.

VS에서 사용되는 MSBUILD와 빌드의 차이점은 무엇입니까? 어떻게 다른 하나가 실패하는 동안 성공 하나?

또한 이런 종류의 문제를 피하는 것이 좋습니다. 여기

가 MSBUILD로부터의 출력이다 :

"D : \ MasterBuild_Dev \ tlv_Platform \ UBUILD \ RecordersAutoFwk Main.sln \"(기본 목표) (1) -> "D : \ MasterBuild_Dev \ tlv_Platform \ UBUILD \ 회귀 자동화 Framework \ Actions \ Common \ Common \ EM.Licensing.csproj "(기본 대상) (46) -> (PrepareForBuild 대상) -> C : \ Windows \ Microsoft.NET \ Framework64 \ v3.5 \ Microsoft. Common.targets (790,9) : 오류 MSB3191 : "........ \ RecordersAutoFwk \ Main \ bin \ Debug \ lib \"디렉토리를 만들 수 없습니다. 동일한 이름의 파일 또는 디렉토리가 이미 존재하므로 "D : \ MasterBuild_Dev \ tlv_Platform \ UBUILD \ RecordersAutoFwk \ Main \ bin \ Debug \ lib"을 만들 수 없습니다. [D : \ MasterBuild_Dev \ tlv_Platform \ UBUILD \ Regression 자동화 프레임 워크 \ Actions \ Common \ Common \ EM.Licensing.csproj]

+1

msbuild Solution.sln/verbosity : diag> log.txt를 실행하고 오류와 관련된 로그 줄을 표시 할 수 있습니까? –

+1

MSBuild를 사용하여 로컬로 빌드하려고 했습니까? 빌드 서버에서와 같은 방식으로 실패합니까? –

+0

두 가지 제안을 모두 시도해보십시오. –

답변

0

자세한 내용이 없으면 계정 중 하나에 권한 문제가 있다고 말할 수 있습니다. 섬기는 사람.

VS는 어떤 계정에서 실행됩니까? MSBuild는 어떤 계정으로 실행됩니까?

+0

권한과 관련이 없습니다. 나는 기본적으로 프로젝트의 출력 경로를 동일한 위치에 설정했습니다. 폴더가 처음 생성 될 때마다 좋습니다. 이 폴더를 만들려는 다음 프로젝트는 이미 만들어져 있으므로 실패합니다 (내 가정이므로 확인해야합니다). –

0

여러 코어를 사용하여 msbuild를 실행할 때 다음과 같은 잠금 충돌이 발생할 수 있습니다 :/maxcpucount : n을 사용하면 프로세스 중 하나가 다른 프로세스의 폴더를 잠그고 다음과 같은 결과를 얻는 것 같습니다. 스위치를 사용하지 않고 스위치를 수정하면 일부 슬럼가에서만 문제가 해결되지 않습니다. postbuild 명령을 사용하여 빌드 출력 경로가 아닌 복사를 수행 하시겠습니까?

msbuild 명령을 알고 있다면 도움이 될 것입니다.

+0

Teamcity가 빌드를 호출하는 팀이기 때문에 확실하지 않습니다. 그 동안 게시물을 빌드 명령으로 복사하려면 전환, 잘 작동합니다. –