自訂 SolutionToBuild 項目群組
您可以藉由傳遞屬性和目標至 SolutionToBuild 項目群組內的組建,以自訂 Team Foundation Build 專案檔 (即 TFSBuild.proj)。 您也可以在 SolutionToBuild 項目群組內新增或移除要建置的方案。 如需 TFSBuild.proj 檔的詳細資訊,請參閱認識 Team Foundation Build 組態檔。
必要的使用權限
若要完成這些程序,您必須將 [簽入] 和 [簽出] 權限設定為 [允許]。
編輯 Team Foundation Build 專案檔
在能夠編輯 TFSBuild.proj 檔之前,您必須先將其從原始檔控制簽出。
若要編輯 TFSBuild.proj 檔
在 [檢視] 功能表上,指向 [其他視窗],然後按一下 [原始檔控制總管]。
在 [原始檔控制總管] 中,展開 [資料夾] 窗格內的 Team 專案,然後選取 [TeamBuildTypes]。
若要取得 TFSBuild.proj 的最新版本,請以滑鼠右鍵按一下 [TeamBuildType] 資料夾,並按一下 [取得最新的版本]。
這個動作會讓這些檔案可用於簽出,以便進行編輯。
在檢視窗格中,按兩下您想要修改的組建定義名稱,以滑鼠右鍵按一下 TFSBuild.proj,然後按一下 [簽出以編輯]。 在 [簽出] 對話方塊中,選取 [無 - 允許共用簽出],然後按一下 [簽出]。
此時 TFSBuild.proj 檔旁邊會顯示紅色的核取記號,表示它的原始檔控制狀態。
按兩下 TFSBuild.proj 檔,即可在 Visual Studio XML 編輯器中開啟此檔案。
在 SolutionToBuild 項目群組內傳遞屬性
Team Foundation Build 內含兩個保留的屬性,您可以用來自訂組建定義:
當 Team Foundation Build 呼叫 Clean 目標時,CustomPropertiesForClean 會將自訂值傳遞給每個方案。
當 Team Foundation Build 呼叫其預設目標時 (通常為 Build),CustomPropertiesForBuild 會將自訂值傳遞給每個方案。
若要在 SolutionToBuild 項目群組內傳遞屬性
在 TFSBuild.proj 檔中,找出 <SolutionToBuild> 標籤。
若要在預設目標中加入自訂屬性,請在 <SolutionToBuild> 和 </SolutionToBuild> 標記間輸入下列內容。 例如:
<SolutionToBuild Include="$(SolutionRoot)\HelloWorld.sln"> <CustomPropertiesForBuild> Context=TeamBuild;RootDirectory=$(SolutionDir) </CustomPropertiesForBuild> </SolutionToBuild>
這個 XML 將建置屬性 RootDirectory 指向預設的 SolutionDir 屬性。
使用相同語法在 CustomPropertiesForClean 屬性內傳遞自訂屬性。
(選擇性) 您可以藉由在中繼資料內指定自訂屬性,將這些屬性傳遞至個別 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) 關聯之定義建置的方案。
若要新增或移除要建置的方案
在 TFSBuild.proj 檔中,找出 <SolutionToBuild> 標籤。
如果組建定義設定為只建置一個方案,則 SolutionToBuild 項目與下列 XML 類似:
<ItemGroup> <SolutionToBuild Include="$(BuildProjectFolderPath)\path\MySolution.sln"> <Targets></Targets> <Properties></Properties> </SolutionToBuild> </ItemGroup>
若要加入其他方案,請在開頭 <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>
若要移除方案,請移除 <SolutionToBuild></SolutionToBuild> 標記,並將您不想建置之方案的標記間所有的內容刪除。
在 SolutionToBuild 項目群組內呼叫自訂目標
您可以藉由在中繼資料內指定這些項目,為個別的 SolutionToBuild 項目呼叫自訂目標。
若要在 SolutionToBuild 項目群組內呼叫自訂目標
在 TFSBuild.proj 檔中,找出 <SolutionToBuild> 標籤。
您可以使用下列語法來呼叫目標及傳遞屬性。
<SolutionToBuild Include="$(BuildProjectFolderPath)\path\MySolution.sln"> <Targets>MyCustomTarget1;MyCustomTarget2</Targets> <Properties>Property1=Value1;PropertyTwo=Value2</Properties> </SolutionToBuild>
這個 XML 會呼叫目標 MyCustomTarget1 和 MyCustomTarget2,並傳遞屬性 Property1 和 Property2。