Share via


自訂 SolutionToBuild 項目群組

您可以藉由傳遞屬性和目標至 SolutionToBuild 項目群組內的組建,以自訂 Team Foundation Build 專案檔 (即 TFSBuild.proj)。 您也可以在 SolutionToBuild 項目群組內新增或移除要建置的方案。 如需 TFSBuild.proj 檔的詳細資訊,請參閱認識 Team Foundation Build 組態檔

必要的使用權限

若要完成這些程序,您必須將 [簽入] 和 [簽出] 權限設定為 [允許]。

編輯 Team Foundation Build 專案檔

在能夠編輯 TFSBuild.proj 檔之前,您必須先將其從原始檔控制簽出。

若要編輯 TFSBuild.proj 檔

  1. 在 [檢視] 功能表上,指向 [其他視窗],然後按一下 [原始檔控制總管]。

  2. 在 [原始檔控制總管] 中,展開 [資料夾] 窗格內的 Team 專案,然後選取 [TeamBuildTypes]。

  3. 若要取得 TFSBuild.proj 的最新版本,請以滑鼠右鍵按一下 [TeamBuildType] 資料夾,並按一下 [取得最新的版本]。

    這個動作會讓這些檔案可用於簽出,以便進行編輯。

  4. 在檢視窗格中,按兩下您想要修改的組建定義名稱,以滑鼠右鍵按一下 TFSBuild.proj,然後按一下 [簽出以編輯]。 在 [簽出] 對話方塊中,選取 [無 - 允許共用簽出],然後按一下 [簽出]。

    此時 TFSBuild.proj 檔旁邊會顯示紅色的核取記號,表示它的原始檔控制狀態。

  5. 按兩下 TFSBuild.proj 檔,即可在 Visual Studio XML 編輯器中開啟此檔案。

在 SolutionToBuild 項目群組內傳遞屬性

Team Foundation Build 內含兩個保留的屬性,您可以用來自訂組建定義:

  • 當 Team Foundation Build 呼叫 Clean 目標時,CustomPropertiesForClean 會將自訂值傳遞給每個方案。

  • 當 Team Foundation Build 呼叫其預設目標時 (通常為 Build),CustomPropertiesForBuild 會將自訂值傳遞給每個方案。

若要在 SolutionToBuild 項目群組內傳遞屬性

  1. 在 TFSBuild.proj 檔中,找出 <SolutionToBuild> 標籤。

  2. 若要在預設目標中加入自訂屬性,請在 <SolutionToBuild> 和 </SolutionToBuild> 標記間輸入下列內容。 例如:

    <SolutionToBuild Include="$(SolutionRoot)\HelloWorld.sln">
      <CustomPropertiesForBuild>
        Context=TeamBuild;RootDirectory=$(SolutionDir)
      </CustomPropertiesForBuild>
    </SolutionToBuild>
    

    這個 XML 將建置屬性 RootDirectory 指向預設的 SolutionDir 屬性。

    使用相同語法在 CustomPropertiesForClean 屬性內傳遞自訂屬性。

  3. (選擇性) 您可以藉由在中繼資料內指定自訂屬性,將這些屬性傳遞至個別 SolutionToBuild 項目。

    例如:

    <SolutionToBuild Include="$(SolutionRoot)\HelloWorld.sln">
      <Properties>
        OutDir=$(BinariesRoot)\$(Solution)\$(Platform)\$(Configuration)
      </Properties>
    </SolutionToBuild>
    

    這個 XML 指定了組建定義的輸出目錄或與此 TFSBuild.proj 檔案關聯的定義。

    注意事項注意事項

    加入 CustomPropertiesForBuild 和 CustomPropertiesForClean 標記會使 Visual Studio 中發生 XML 結構描述驗證警告。 您可以安心地忽略那些警告。

從 SolutionToBuild 項目群組新增和刪除方案

您可以編輯 SolutionToBuild 項目群組,以新增或移除將由組建定義或與 Team Foundation Build 專案檔 (即 TFSBuild.proj) 關聯之定義建置的方案。

若要新增或移除要建置的方案

  1. 在 TFSBuild.proj 檔中,找出 <SolutionToBuild> 標籤。

    如果組建定義設定為只建置一個方案,則 SolutionToBuild 項目與下列 XML 類似:

    <ItemGroup>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\path\MySolution.sln">
      <Targets></Targets>
      <Properties></Properties>
    </SolutionToBuild>
    </ItemGroup>
    
  2. 若要加入其他方案,請在開頭 <ItemGroup> 標記後以及結尾 </ItemGroup> 標記前,加入另外一組 <SolutionToBuild></SolutionToBuild> 標記。

    <SolutionToBuild Include="$(BuildProjectFolderPath)\path\MySolution.sln">
      <Targets></Targets>
      <Properties></Properties>
    </SolutionToBuild>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\path\MySecondSolution.sln">
      <Targets></Targets>
      <Properties></Properties>
    </SolutionToBuild>
    
  3. 若要移除方案,請移除 <SolutionToBuild></SolutionToBuild> 標記,並將您不想建置之方案的標記間所有的內容刪除。

在 SolutionToBuild 項目群組內呼叫自訂目標

您可以藉由在中繼資料內指定這些項目,為個別的 SolutionToBuild 項目呼叫自訂目標。

若要在 SolutionToBuild 項目群組內呼叫自訂目標

  1. 在 TFSBuild.proj 檔中,找出 <SolutionToBuild> 標籤。

  2. 您可以使用下列語法來呼叫目標及傳遞屬性。

    <SolutionToBuild Include="$(BuildProjectFolderPath)\path\MySolution.sln">
      <Targets>MyCustomTarget1;MyCustomTarget2</Targets>
      <Properties>Property1=Value1;PropertyTwo=Value2</Properties>
    </SolutionToBuild>
    

    這個 XML 會呼叫目標 MyCustomTarget1 和 MyCustomTarget2,並傳遞屬性 Property1 和 Property2。

請參閱

工作

建立基本組建定義

其他資源

Team Foundation Build 目標、工作和屬性