2017-01-23 3 views
0

내 빌드를 위해 "델타"를 빌드하는 TFS 2015에 대한 솔루션을 찾으려고합니다. TFS 2013에서는 매개 변수 "출력"을 사용하여 "Clean Workspace"설정을 통해 작업이 완료되었습니다.빌드 정의에 대한 TFS 2015 "델타"

출력 : 기존 출력을 모두 삭제하지만 마지막 빌드 이후 변경된 원본 파일 만 가져 오기 (증분 가져 오기).

누군가 TFS 2015에서 어떻게 수행되어야하는지 알려주실 수 있습니까?

감사합니다.

답변

0

새로운 빌드 시스템을 언급하고 증분 빌드가 필요하다고 가정합니다. Visual Studio Build/MSBuild 태스크를 추가하여 프로젝트를 빌드 할 때 Clean 옵션의 선택을 취소하십시오. 아래의 스크린 샷을 확인하십시오

enter image description here

청소 옵션 : False로 설정이 증분 빌드 만들고 싶어. 이 설정은 특히 코드베이스가 인 경우 빌드 시간을 단축시킬 수 있습니다. 이 옵션은 Clean 저장소를 False로 설정하지 않으면 실용적인 효과가 없습니다.

코드 프로젝트의 모든 코드를 다시 작성하려면 True로 설정하십시오. 이것은 MSBuild /target:clean argument과 동일합니다.

+0

안녕하세요. 답변 해 주셔서 감사합니다. 그러나 이것이 내가 원하는 것만은 아닙니다. Build 솔루션에서 작동하지 않습니다. 무엇이 필요합니까 : 내 변경 집합에있는 모든 요소가있는 새 폴더를 만들려면 다음을 수행하십시오. 또는 내 레이블에서 변경된 폴더를 만들 수 있습니다. 동일한 기능을 할 수 있지만 변경 내용이있는 구성 요소로 새 폴더를 만드는 방법을 찾을 수는 없습니다. C (변경 집합 번호) 또는 L (MyLabelName)을 지정할 수 있음을 알고 있습니다. –

+0

변수 "Build.Clean"변수를 추가하고 변수 탭에서 "source"로 설정하면 빌드를 대기열에 놓을 때마다 전체 소스 폴더가 삭제되고 빌드 서버의 작업 영역에 지정한 변경 집합/레이블이 표시됩니다. –

+0

안녕하세요. 이 변수는 처음부터 나에 의해 설정되었습니다. 그것이하는 일은 - 당신이 말한 것처럼 전체 소스 폴더를 삭제하는 것이지만, 프로젝트에있는 모든 것을 얻는 것입니다. 나는 이것이 기본 기능인 것으로 알고 있기 때문에 : 2017-01-25T13 : 34 : 39.2187897Z 소스 디렉토리가 존재하는지 확인 : D : \ BuildAgent \ _work \ 1 \ s 2017-01-25T13 : 34 : 39.2187897Z 소스 디렉토리 삭제 . 2017-01-25T13 : 34 : 40.7947533Z 시작 : 소스 가져 오기 결과 소스 디렉토리에 Project + 변경 사항에 지정된 모든 코드가 다시 있습니다. 하지만 이건 내가 찾고 있는게 아니야. –

0

MSFT. 물론 여기 샘플이 있습니다. 지금은 XAML 빌드 정의를 사용하고 있습니다. 예를 들어 나는 변경 작업을 수행하고 변경 세트 24000을 가지고 있습니다. 내 개체는 DIS/BR-DEV/csv/my-test.inc뿐입니다.

Build Defaults 설정을 사용하여 Clean Workspace를 "Output"으로 설정 한 후 빌드를 트리거 한 후 빌드 출력을 다음 드롭 폴더 C \ TEST에 복사합니다. C \ TEST \ $ (Build. BuildNumber) \ csv \ my-test.inc (빌드 템플릿에 지정된 것처럼 DIS/BR-DEV는 무시됩니다).

그래서 빌드 정의를 사용하여 동일한 기능을 빌드하려고합니다. 나는 "Copy Files"빌드 단계를 사용하고 있습니다.

원본 폴더 = $ (Build.SourcesDirectory)에서 지정하고 있습니다. 대상 폴더 = D : \ BuildAgent_work \ 1 \ $ (Build.BuildNumber).

질문은 콘텐츠 입력란에 있습니다. 내 변경 사항 만 복사하도록 지정할 수 없습니다. 다음 패턴이 있습니다 : 복사 할 파일 목록에 적용 할 최소화 패턴 필터 (각 행에 하나씩)를 지정하십시오. 예 :

  • 은 루트 폴더의 모든 파일을 복사합니다. ***은 루트 폴더의 모든 파일과 모든 하위 폴더의 모든 파일을 복사합니다. ** \ bin ** 모든 bin 폴더에서 모든 파일을 반복적으로 복사합니다.

따라서이 패턴을 사용하면 변경 사항 # 내 변경 사항을 기반으로 동적으로 가져올 수 없습니다.

또한 빌드를 트리거 할 때 C24000을 지정하려고했지만 소스 폴더에 추가하면 그만입니다.

내 대상 폴더 = D : \ BuildAgent_work \ 1 \ $ (Build.BuildNumber) my mytest.inc에 표시 될 것으로 예상됩니다.

관련 문제