2011-12-19 1 views
1

빌드 속도를 높이기 위해 증분 빌드로 전환했습니다. this MSDN page 설명 A는 내 빌드 프로젝트에 다음과 같은 정보를 추가했습니다 :증분 빌드를 구현 한 후 정적 콘텐츠에서 TFS/MSBuild가 중단됩니다.

<PropertyGroup> 
     <SkipClean>true</SkipClean> 
     <SkipInitializeWorkspace>true</SkipInitializeWorkspace> 
     <ForceGet>false</ForceGet> 
    </PropertyGroup> 

은 모두 잘 작동하고 건물은 훨씬 빨리 간다. 최근에 내 빌드 휴식 이러한 유형의 오류를 받았는데 :

[모든 CPU/자료] C : \ 프로그램 파일 \ MSBuild에서 마이크로 소프트 \으로 VisualStudio \ v9.0을 \ \ WebApplications \ Microsoft.WebApplication. 대상 (60,3) : 오류 MSB3021 : "IMAGES \ tab \ black.gif"파일을 "D : \ Build \ Binaries \ Release_PublishedWebsites \ MyApp \ IMAGES \ tab \ black.gif"에 복사 할 수 없습니다. 'D : \ Build \ Binaries \ Release_PublishedWebsites \ MyApp \ IMAGES \ tab \ black.gif' 경로에 대한 액세스가 거부되었습니다.

이 문제는 일 때만 발생합니다. 결코 dll (다른 질문에 대해서는 그렇듯이)이지만 항상 .gif 또는 .css 파일 (정적 내용)입니다. 이러한 유형의 파일을 어떻게 잠글 수 있습니까?

임시 바이너리 디렉토리를 삭제하면 다음 빌드의 문제가 해결되지만 올바른 해결책은 아닙니다.

답변

1

저는 빌드와 동일한 문제가 있었지만 점진적 빌드는 수행하지 않았습니다.

내가 출력 (없음에서)이 방지해야에 (>2. 기본프로세스 단위) 청소 작업 옵션을 빌드 정의를 편집하고 설정하는 것입니다 해낸 문제에 대한 해결 방법 그것은 일어나지 않는다. 이것은 빌드에 너무 많은 오버 헤드를 추가하지는 않지만 SSD에서 수행됩니다.

일부 파일의 경우 여전히 읽기 전용 플래그가 설정되어있는 상태에서 복사되는 경우 문제가 발생한다고 생각하지만 결코 해결할 수있는 방법은 아닙니다.

+0

증분 빌드를 비활성화 했으므로이 방법은 해결책이 아닙니다. 작업 영역 옵션을 출력으로 설정하면 빌드하기 전에 모든 프로젝트에서 대상 정리가 호출되고 프로젝트를 다시 빌드해야합니다. 출력 옵션은 배포에 사용되는 빌드에 유용합니다. 변경 사항이 점진적으로 발생하고 프로젝트가 다시 빌드됩니다. – Ludwo

0

솔루션에 여러 웹 사이트 프로젝트가있는 것처럼 보입니다. 모든 웹 사이트는 동일한 D : \ Build \ Binaries \ Release_PublishedWebsites \ MyApp 폴더에 게시됩니다. 두 개 이상의 웹 사이트에서 동일한 이미지 이름을 콘텐츠로 사용하고 있습니다. 이러한 웹 사이트 프로젝트가 동시에 빌드되면 웹 사이트가 동시에 빌드되기도합니다. 하나의 웹 사이트 프로젝트는 다른 웹 사이트 프로젝트가 이미 동일한 내용을 대상 폴더에 복사하는 동안 해당 내용을 출력 폴더에 복사하려고합니다.

+0

그건 내 처음 생각 이었지만 웹 앱 (DLL 만 있지만 절대 실패하지는 않음) 사이에는 공유 리소스가 없습니다. 병렬로 빌드 할 프로젝트를 구성하지 않았고 기본적으로 빌드하는 방법이 확실하지 않습니다. –

+0

동일한 참조를 사용하고 참조 된 프로젝트에 일부 콘텐츠 파일이있는 경우 웹 사이트간에 리소스를 공유 할 수 있습니다. 콘텐츠 파일은 참조 된 dll과 함께 웹 사이트 출력 폴더에 복사됩니다. 다른 폴더에 웹 사이트를 구축 할 수 있습니까? 그런 다음 하나의 웹 사이트에서만 이미지 폴더를 사용하고 있는지 확인할 수 있습니다. – Ludwo

관련 문제