MSBuild 提供公共 API 图面,以便程序可以执行生成和检查项目。 可在以下 NuGet 包中找到 MSBuild API 的最新版本:
| 包名称 | DESCRIPTION |
|---|---|
| Microsoft.Build | 包含用于创建、编辑和评估 MSBuild 项目的 Microsoft.Build 程序集。 |
| Microsoft.Build.Framework | 包含其他 MSBuild 程序集所用的通用 MSBuild 框架程序集。 |
| Microsoft.Build.Runtime | 提供 MSBuild 的完整可执行副本。 仅当应用程序需要加载项目或执行进程内生成而无需安装 MSBuild 时,才引用此包。 成功评估使用此包的项目需要将其他组件(如编译器)聚合到应用程序目录中。 |
| Microsoft.Build.Tasks.Core | 包含实现 MSBuild 常用任务的 Microsoft.Build.Tasks 程序集。 |
| Microsoft.Build.Utilities.Core | 包含用于实现自定义 MSBuild 任务的 Microsoft.Build.Utilities 程序集。 |
此外,NuGet 还托管已弃用的旧程序集 Microsoft.Build.Engine。
MSBuild API 有多个不同版本,对于版本 15 和 16,NuGet 包中有两种不同的程序集形式,一种是使用 .NET Framework 编译的,另一种是使用 .NET Core 编译的,这是 .NET Framework API 图面的子集。 调用 dotnet 命令时以及 Mac 和 Linux 系统上使用 MSBuild 时,将使用 MSBuild 的 .NET Core 版本。
可以使用 .NET API 浏览器或浏览以下列表中的命名空间找到 MSBuild API 的文档。
| Namespace | 应用到 | DESCRIPTION |
|---|---|---|
| Microsoft.Build.Construction | All | 包含 MSBuild 对象模型用于构造具有未计算值的项目根的类型。 每个项目根对应于项目或目标文件。 |
| Microsoft.Build.Definition | All | 包含支持项目构造的 ProjectOptions 类。 |
| Microsoft.Build.Evaluation | All | 包含 MSBuild 对象模型用于评估项目的类型。 每个项目都与一个或多个项目根相关联。 |
| Microsoft.Build.Evaluation.Context | All | 包含用于跨调用存储评估状态的 EvaluationContext 类。 |
| Microsoft.Build.Exceptions | All | 包含可能在生成过程中引发的异常类型。 |
| Microsoft.Build.Execution | All | 包含 MSBuild 对象模型用于生成项目的类型。 |
| Microsoft.Build.Framework | All | 包含定义任务和记录器如何与 MSBuild 引擎交互的类型。 |
| Microsoft.Build.Framework.Profiler | All | 包含支持性能分析的类型。 |
| Microsoft.Build.Framework.XamlTypes | 仅限 .NET Framework | 包含用于表示从文件、规则和其他源分析的 XAML 类型的类。 |
| Microsoft.Build.Globbing | All | 包含支持通配符处理的类。 |
| Microsoft.Build.Globbing.Extensions | All | 包含用于扩展通配符处理的类型。 |
| Microsoft.Build.Graph | All | 包含支持 -graph MSBuild 开关的类型。 |
| Microsoft.Build.Logging | All | 包含用于记录生成进度的类型。 |
| Microsoft.Build.ObjectModelRemoting | All | 包含支持 MSBuild 中的远程处理的类型。 |
| Microsoft.Build.Tasks | All | 包含使用 MSBuild 传送的所有任务的实现。 |
| Microsoft.Build.Tasks.Deployment.Bootstrapper | 仅限 .NET Framework | 包含 MSBuild 在内部使用的类。 |
| Microsoft.Build.Tasks.Deployment.ManifestUtilities | 仅限 .NET Framework | 包含 MSBuild 使用的类。 |
| Microsoft.Build.Tasks.Hosting | All | 包含 MSBuild 在内部使用的类。 |
| Microsoft.Build.Tasks.Xaml | 仅限 .NET Framework | 包含与 XAML 生成任务相关的类。 |
| Microsoft.Build.Utilities | All | 包含可用于创建自己的 MSBuild 记录器和任务的帮助程序类。 |
在上表中,“应用于”列中的“全部”表示命名空间中的类型在 .NET Framework 和 MSBuild API 的 .NET Core 版本中均可用。
MSBuild 查找器
MSBuild 定位器是一个 API,可用于在计算机上查找 MSBuild。 如果要查找已安装的 MSBuild 版本,可以在生成工具开发中使用它。
NuGetPackage 位于 Microsoft.Build.Locator ,参考文档 位于Microsoft。
有关 MSBuildLocator 的详细信息,请参阅 查找和使用 MSBuild 版本。