2009-11-25 67 views
2

在tfs build 2008中建立一個新的團隊構建,你不得不爲你的構建定義選擇一個.sln文件。Team Foundation Build(2008)減去.sln文件?

我已經通讀了Microsoft.TeamFoundation.Build.Targets,並且據我所知,所有的團隊構建都是在tfsbuild.proj中將愚蠢的.sln格式轉換爲msbuild,然後構建。所以你最終得到的是tfsbuild.proj調用mysolution.sln然後調用myproject.csproj。

我更喜歡將tfsproj導入myproject.csproj,覆蓋幾個目標,並跳過整個.sln => msbuild黑匣子。

有沒有人這樣做?什麼是正確的目標重寫乾淨地截斷.sln混亂?我想CoreCompileConfiguration將需要被覆蓋。

切斷.sln功能會損失什麼?

回答

2

TFS 2008可以構建解決方案項目。您只需指定要在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必須重寫,很可能是因爲原來總是尋找一些財產,並希望它的存在,幷包含有效的.sln文件