2011-08-23 3 views
1

간단한 대답이 있지만 Google go-fu는 실패합니다.레이블이 지정된 파일을 TFSBuild로 가져 오는 중

나는 TFS 2008에서 최신 코드를 사용할 때 OK를 만드는 팀 프로젝트를 가지고 있지만, 빌드 할 때 파일의 하위 버전을 가져와야합니다. 파일의 하위 세트는 모두 동일한 레이블 (아래 스 니펫의 "MyLabel")로 레이블됩니다.

내가 TFSBuild.proj 파일로 추가 한 XML의 조각은 다음과 같습니다 :이 성공적으로 소스 영역에 파일의 하위 집합을 가져

, 그러나 그것은 또한 소스의 다른 모든 파일을 삭제합니다 지역. 빌드 프로세스 즉

는 다음을

  1. 삭제 소스 영역으로 파일의 부분 집합의 레이블이 버전을 가져 오기 소스 영역
  2. 에있는 모든 파일의 최신 버전을 가져 오는 모든 비 표지 소스 영역에서 파일
  3. 실행이 빌드는 다음과 같은 오류와 함께 실패

를 구축 : C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets (997,5) : 오류 MSB3491 : "build directory"\ Sources \ MySolution 파일에 줄을 쓸 수 없습니다. sln.x64.Release.vsprops ". '[build directory] \ Sources \ MySolution.x64.Release.vsprops'경로의 일부를 찾을 수 없습니다.

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

하지만 다음은 XML의 맨 아래에 다음 코드를 추가

내가 해봤 (기본적으로 삭제되어 있기 때문에이 솔루션을 찾을 수 없음을 나타냅니다)

결과는 같습니다.

내 질문은 다음과 같습니다. 최신 버전과 이전 레이블 버전이 혼합되어있을 때 어떻게하면 내 솔루션을 구축 할 수 있습니까? 내가 뭘 놓치고 있니?

는 (난 그냥 기준을 분기 할 수 실현하지만 여러 가지 이유로 내가 처음이 방법을 탐구하고자하는) 사전에

감사합니다!

답변

0

마음에 와서 그냥 간단한 방법 : 최신 버전

  • 가로 WORKSPACE2 이상
  • XCopy를 WORKSPACE1 내용을 WORKSPACE2 당신의 레이블이 버전 받기 WORKSPACE1을하기

    1. 행동을
    2. 을 포스트 - 수

    당신은 어떻게 생각하십니까? 그럴만 한 가치가 있니?

  • +0

    예, 작동한다고 생각됩니다. 나는 더 좋은 해결책이 있기를 바랐지만, 대답이 부족하면 그렇지 않다는 것을 나타내는 것처럼 보였다. 결국 나는 길을 따라 내려 갔지만, 미래에 이것을 염두에 두겠다. 감사. – glumesc

    0

    C : \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets를 보면 빌드 용으로 가져온 버전이 GetVersion 속성에 의해 제어되는 것으로 보입니다. ForceGet은 기본적으로 true입니다.

    나는 그것을 테스트하지 않은,하지만 그건 당신이 빌드를 대기 할 때 MSBuild를 명령 줄 인수 텍스트 상자에

    /property:GetVersion=*versionspec* 
    

    를 넣어 경우, 그것은 (지정된 버전을 가져 오기위한 here을 찾아야한다 나에게 의미 versionspec 구문. 어떤 이유로이 작업이 실패하면 msbuild를 내가 이해할 때까지 Aaron Hallberg의 blog을 읽으십시오.

    관련 문제