2014-06-16 5 views
1

이 갖는 문제의 메신저입니다.OverwriteReadOnlyFiles 재산, 오류 MSB3021

일반적으로 팀 빌드에서이 오류는 (a) MSBuild에서 동일한 파일을 복사 할 파일 목록에 두 번 이상 포함시킬 수 있고 (b) 이러한 파일이 일반적으로 팀 빌드에서는 읽기 전용이므로 버전 제어에서 검색되고 체크 아웃되지 않습니다. 이 문제의 해결 방법은 사용중인 Team Build (및 MSBuild) 버전에 따라 다릅니다.

내가이 솔루션을 발견 :

팀 빌드 2008의 MSBuild 3.5에서는, OverwriteReadOnlyFiles 속성이이 복사 작업을 읽고 덮어 빌드 과정에 참여 할 수 있도록 true로 설정할 수 있습니다 추가 된 3.5
/MSBuild를 여기에 설명 된 것과 같은 경우에만 - 전용 파일. 따라서 Team Build 2008/MSBuild 3.5에서는 세 번째 해결 방법이 가능합니다. 이 해결 방법은 3.5 버전의 Microsoft.Common.targets를 사용하는 프로젝트에서만 작동합니다. MSBuild에서 사용할 수있는 다중 대상 지정 기능으로 인해 Team Build 2008에서 빌드 한 모든 프로젝트 일 필요는 없습니다.

To 전 세계적으로 true로 OverwriteReadOnlyFiles 속성을 설정 중 하나를 수행 할 수 있습니다 : 빌드 정의 TfsBuild.rsp에, 또는 은 빌드 TfsBuild.proj에 다음과 같은 속성 그룹을 추가

텍스트 "OverwriteReadOnlyFiles = 참/P는"추가 정의.

<PropertyGroup> 
    <CustomPropertiesForBuild>OverwriteReadOnlyFiles=true</CustomPropertiesForBuild> 
</PropertyGroup> 

누군가가 내 빌드에서 TFS 2010이 솔루션을 구현하는 방법에 나를 안내 할 수 있습니까?

이있는

TfsBuild.rsp

또는

TfsBuild.proj을하고 난

+0

왜 소스 제어에서 빌드의 일부로 파일을 덮어 써야합니까? 그게 뭔가 쓸데없는 냄새예요 ... –

답변

0

이 TFSBuild 변경 언급 한 제안을 추가하는 방법 :

내가 어디 있는지 알고하지 않습니다 TFS 2010에서 상당히 더 이상 MSBuild 기반이 아니며 Workflow 기반입니다. 더 이상 TfsBuild.proj 파일이 없습니다.

읽기 전용 파일을 덮어 쓰려고하는 경우 모범 사례 (MrHinsh가 설명에 언급 된대로)에 따라 수행되지 않을 가능성이 있습니다. 만약 당신이하고있는 일이 적절한 것이라면, 읽기 전용 플래그를 끄거나 읽기 전용 플래그를 무시할 수있는 복사 방법을 사용해야합니다.