使用 MSBuild API

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 版本