MSBuild 使用任務、目標和工具的工具集以生成應用程序。通常,MSBuild 工具集包括 microsoft.common.tasks 文件、microsoft.common.targets 文件以及編譯器(如 csc.exe 和 vbc.exe)。大多數工具集可用於將應用程序編譯為多個版本的 .NET Framework 以及多個係統平台。但 MSBuild 2.0 工具集僅可用於麵向 .NET Framework 2.0。
當你在 Visual Studio 中創建項目或更新現有項目時,名為ToolsVersion的特性將自動包括在項目文件中,並且其值對應於包括在 Visual Studio 版本中的 MSBuild 版本。有關詳細信息,請參閱麵向特定的 .NET Framework 版本或配置文件。
當ToolsVersion值在項目文件中定義時,MSBuild 將使用該值來確定在該項目中可用的工具集屬性的值。其中一個工具集屬性為$(MSBuildToolsPath),該屬性指定 .NET Framework 工具的路徑。僅該工具集屬性(或$(MSBuildBinPath))是必需的。
從 Visual Studio 2013 開始,MSBuild 工具集版本號與 Visual Studio 版本號相同。無論項目文件中指定哪個工具集版本,MSBuild 都會在 Visual Studio 中和命令行上默認使用該工具集。使用 /ToolsVersion 標誌可重寫此行為。有關詳細信息,請參閱重寫 ToolsVersion 設置。
在下麵的示例中,MSBuild 將使用MSBuildToolsPath保留的屬性查找 Microsoft.CSharp.targets 文件。
通過選擇組成某個工具集的各種工具、目標以及任務的路徑來實現該工具集。 MSBuild 定義的工具集中的工具來自以下源:
.NET Framework 文件夾。
其他托管工具。
這些托管工具包括 ResGen.exe 和 TlbImp.exe。
MSBuild 提供了兩種方式來訪問工具集:
使用工具集屬性
使用 ToolLocationHelper 方法
工具集屬性指定工具的路徑。 MSBuild 使用項目文件中的 ToolsVersion 屬性的值以查找相應的注冊表項,然後使用該注冊表項中的信息來設置工具集屬性。 例如,如果 ToolsVersion 的值為 12.0,則 MSBuild 將根據以下注冊表項設置工具集屬性:HKLM\Software\Microsoft\MSBuild\ToolsVersions\12.0。
76.4M / 03-25
55M / 06-05
237.9M / 04-13
140.5M / 03-06
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
353.9M / 06-05
131.8M / 04-13
230.8M / 03-03
195.6M / 03-03
165.4M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
325.8M / 06-07
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
110.5M / 04-23
26.7M / 03-16
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
201.2M / 04-13
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
9.48G / 07-06
50KB / 07-06
116.2M / 04-10
1.92G / 04-17
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
509.7M / 07-06
561.8M / 07-11
1.32G / 01-19
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06