2009-11-25 2 views
2

tfs 빌드 2008에서 새 팀 빌드를 설정하면 빌드 정의에 .sln 파일을 선택해야합니다.Team Foundation Build (2008) .sln 파일 빼기?

저는 Microsoft.TeamFoundation.Build.Targets를 통해 읽었습니다. 모든 팀 빌드는 바보 같은 .sln 형식을 tfsbuild.proj의 msbuild로 변환하여 변환 한 것입니다. . 결국 tfsbuild.proj가 mysql.sln을 호출하여 myproject.csproj를 호출하게됩니다.

내가 선호하는 것은 tfsproj import myproject.csproj를 갖고, 몇 개의 타겟을 오버라이드하고 전체 .sln => msbuild 블랙 박스를 생략하는 것이다.

누구에게이 작업을 수행 했습니까? .sln 혼란을 깨끗이 절단하기 위해 무시할 수있는 올바른 목표는 무엇입니까? CoreCompileConfiguration을 재정의해야한다고 생각합니다.

.sln 기능을 없애면 무엇이 손실됩니까?

답변

2

TFS 2008 솔루션 또는을 구축 할 수있는 유효한의 .sln 파일이 포함되어 기대 때문에 프로젝트. SolutionsToBuild 속성에서 빌드 할 프로젝트 (예 : .csproj) 파일을 지정하고 빌드 할 구성 및 플랫폼이 프로젝트와 일치하는지 확인하면됩니다.

여기에 대한 설명이 있습니다. How to build a .csproj using TFS 2008 and MSBuild

0

여기는 우리가 밖으로 프로젝트에서 사용하는 것입니다. 그것은 완벽하지는 않지만 속임수를합니다.

<Target Name="CoreCompile" 
    DependsOnTargets="$(_CoreCompileDependsOn)" 
    Outputs="@(CompilationOutputs)"> 

    <MakeDir Directories="$(BinariesRoot)" Condition="!Exists('$(BinariesRoot)')" /> 

    <MSBuild Projects="$(SolutionRoot)\$(SrcBranch)\WholeProject.proj" 
      StopOnFirstFailure="$(StopOnFirstFailure)"> 
    <Output TaskParameter="TargetOutputs" ItemName="CompilationOutputs" /> 
    </MSBuild> 
</Target> 

WholeProject.proj

빌드와 빌드 시스템에서 개발자 컴퓨터에 사용되는 파일입니다.

나는 CoreCompile를 오버라이드 (override)해야 지금 이유를 모르겠어요, 아마 원래는 항상 어떤 속성에 대한보고가 존재하고