建立自訂工具組設定
MSBuild 工具組包含可用來建置應用程式專案的工作、目標和工具的參考。 MSBuild 包含標準的工具組,但您也可以建立自訂工具組。
標準工具組設定
MSBuild 包含參考目前 MSBuild 版本的標準工具組 Current
,該版本會安裝在 Visual Studio 安裝目錄下的 [msBuild\Current\Bin] 資料夾。
自訂工具組定義
當標準工具組無法滿足您的組建需求時,您可以建立自訂 Toolset
。 例如,您可能有個組建置實驗室案例,必須使用個別的系統組建 C++ 專案。 使用自訂 Toolset
,您就可以使用 /toolsVersion
命令列切換,在執行 MSBuild.exe 時將自訂值指派給 ToolsVersion
屬性。 如果您在專案檔中指定 ToolsVersion
屬性,則會忽略它。
透過這樣做,您也可以使用 $(MSBuildToolsPath)
屬性匯入該目錄的 .targets 檔案,以及定義您自己的自訂工具組屬性,這些屬性可用於使用該工具組的任何專案。
在 MSBuild.exe (如果使用 MSBuild 引擎,則為裝載 MSBuild 引擎的自訂工具) 的設定檔中指定自訂工具組。 例如,如果您想要定義名為 MyCustomToolset 的工具組,MSBuild.exe 的設定檔可以包含下列 Toolset
定義。
<msbuildToolsets default="MyCustomToolset">
<toolset toolsVersion="MyCustomToolset">
<property name="MSBuildToolsPath"
value="C:\SpecialPath" />
</toolset>
</msbuildToolsets>
也必須在組態檔中定義 <msbuildToolsets>
,如下所示。
<configSections>
<section name="msbuildToolsets"
type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection,
Microsoft.Build, Version=15.1.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a">
</section>
</configSections>
注意
為正確讀取,<configSections>
必須在 <configuration>
區段的第一個小節中。
ToolsetConfigurationSection
是可供任何 MSBuild 主機自訂組態使用的自訂組態區段。 如果使用自訂的工具組,主機除提供組態檔項目以外,不必執行任何作業來初始化組建引擎。
下列屬性專門針對專案中使用的 ToolsVersion
值:
$(MSBuildBinPath) 設定為
ToolsPath
值,是在登錄或定義ToolsVersion
的組態檔中指定。 登錄或組態檔中的$(MSBuildToolsPath)
設定會指定核心工作和目標的位置。 在專案檔中,這會對應至 $(MSBuildBinPath) 屬性,也會對應至 $(MSBuildToolsPath) 屬性。$(MSBuildToolsPath)
是保留的屬性,由組態檔中指定的 MSBuildToolsPath 屬性提供。 (這個屬性會取代$(MSBuildBinPath)
。不過,為相容性之故會執行$(MSBuildBinPath)
。)自訂工具組必須定義$(MSBuildToolsPath)
或$(MSBuildBinPath)
,但不能同時定義兩者,除非它們有相同的值。您也可以使用新增 MSBuildToolsPath 屬性時所用的相同語法,在組態檔中新增自訂的工具版本特定屬性。 為使專案檔能夠使用這些自訂屬性,請使用和組態檔指定的值名稱相同的名稱。 您可以在設定檔中定義工具組,但不能定義子工具組。