共用方式為


標準和自訂工具組的組態

MSBuild 工具組包含工作、可用來建立應用程式專案的目標和工具。MSBuild 包括標準工具組,不過,您也可以建立自訂工具組。如需如何指定工具組的詳細資訊,請參閱 MSBuild Toolset (ToolsVersion)

標準工具組的組態

MSBuild 4.5 包含下列標準工具組:

ToolsVersion

Toolset 路徑 (MSBuildToolsPath 或 MSBuildBinPath 組建上指定屬性)

2.0

Windows 安裝路徑\ Microsoft.Net \ Framework \ v2.0.50727 \

3.5

Windows 安裝路徑\Microsoft.NET\Framework\v3.5.20223\

4.0

Windows 安裝路徑\Microsoft.NET\Framework\v4.0.30319\

ToolsVersion 值決定 Visual Studio 產生的專案使用哪一個工具組。您指定 ToolsVersion 做為屬性在專案檔的 Project 項目,不過,您可以覆寫該屬性使用 /toolsversion 參數在命令提示字元。如需此屬性的詳細資訊,這個參數及其他方式指定 ToolsVersion,請參閱 覆寫 ToolsVersion 設定

如果 ToolsVersion 未指定,下列索引鍵定義 ToolsVersion。

登錄區

索引鍵名稱

字串機碼值

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5\

DefaultToolsVersion

2.0

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0\

DefaultToolsVersion

2.0

下列登錄機碼指定的 .NET Framework 版本的安裝路徑與每 ToolsVersion。安裝路徑也指定 MSBuild.exe 的位置,以定義工具組資訊。

登錄區

索引鍵名稱

字串機碼值

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0\

MSBuildToolsPath

使用 .NET Framework 安裝路徑

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5\

MSBuildToolsPath

為 .NET Framework 安裝路徑

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\

MSBuildToolsPath

.NET Framework 的安裝路徑

Bb397428.collapse_all(zh-tw,VS.110).gif子 Toolset

如果登錄機碼上表中有一個子機碼, MSBuild 會使用它來判斷包含多個工具子 Toolset 的路徑。下列子機碼是範例:

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\11.0

VisualStudioVersion 建置屬性表示子 Toolset 是否已經變成作用中。例如, VisualStudioVersion 值為「列」指定 .NET Framework 4.5 子工具組。子 Toolset 區分 MSBuild Toolset (ToolsVersion)(如需詳細資訊,請參閱

注意事項注意事項

建議您避免變更這些設定。然而,因為,下一節所述,您可以加入自己的設定和定義電腦自訂工具組定義。

自訂工具組定義

當標準工具組無法滿足建置需求時,您可以建立自訂工具組。例如,您可能有必須有建立的 Visual C++ 專案不同的系統上建置實驗室案例中。使用自訂工具組,,當您建立專案或執行 MSBuild.exe 時,您可以指定自訂值給 ToolsVersion 屬性。這樣一來,您也可以使用 $(MSBuildToolsPath) 屬性匯入 .targets 檔案從該目錄。

指定自訂工具組組態檔為 MSBuild.exe (或裝載 MSBuild 引擎的自訂工具的,如果這就是您使用)。例如, MSBuild.exe 的組態檔中包含下列工具組定義。

<msbuildToolsets default="3.0">
   <toolset toolsVersion="4.0">
      <property name="MSBuildToolsPath" 
        value="C:\Windows\Microsoft .NET\Framework\v3.0" />
   </toolset>
</msbuildToolsets>

必須在組態檔中定義<msbuildToolsets> ,如下所示。

<configSections>
   <section name="msbuildToolsets"       
       Type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection, 
       Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a"
   </section>
</configSections>
注意事項注意事項

將正確讀取, <configSections> 必須是 <configuration> 部分的第一個子區段。

ToolsetConfigurationSection 是自訂的組態區段,自訂組態的任何主應用程式都可使用此區段。如果您使用自訂工具組,主應用程式除了提供組態檔項目,無須再執行任何動作,就可初始化建置引擎。藉由在登錄定義項目,您可以指定電腦通用工具組,此工具組適用於 MSBuild.exe、Visual Studio 和 MSBuild 的所有主應用程式

注意事項注意事項

如果在登錄中已經定義的組態檔定義 ToolsVersion 的設定,這兩個定義不會合併。在組態檔中定義的優先順序最高,因此在登錄中設定該 ToolsVersion 的會被忽略。

下列屬性是針對專案中所使用 ToolsVersion 的值:

  • $ (MSBuildBinPath) 設為指定在登錄或組態檔 ToolsVersion 定義的 ToolsPath 值。設定在登錄或組態檔的 $(MSBuildToolsPath) 指定工具組的位置。在專案檔中,這相當於 $(MSBuildBinPath) 屬性,也相當於 $(MSBuildToolsPath) 屬性。

  • $ (MSBuildToolsPath) 是 MSBuildToolsPath 屬性提供在組態檔中指定的保留屬性。(此屬性取代 $(MSBuildBinPath)。不過,為相容性考量,仍沿用 $(MSBuildBinPath))。

您也可以使用加入 MSBuildToolsPath 屬性的相同語法,將自訂的 ToolsVersion 特有屬性加入組態檔。為了要讓這些自訂屬性可用專案檔,請使用名稱和組態檔中所指定的值相同的名稱。

請參閱

概念

MSBuild Toolset (ToolsVersion)