使用 MSBuild API

MSBuild 提供公開的 API 介面,讓您的程式可以執行建置並檢查專案。 最新版本的 MSBuild API 可以在下列的 NuGet 套件中找到:

封裝名稱 描述
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 套用至 描述
Microsoft.Build.Construction 全部 包含 MSBuild 物件模型用來建構含未評估值之專案根目錄的類型。 每個專案根目錄都對應於一個專案或目標檔案。
Microsoft.Build.Definition 全部 包含 ProjectOptions 類別 (支援專案建構)。
Microsoft.Build.Evaluation 全部 包含 MSBuild 物件模型用來評估專案的類型。 每個專案都與一或多個專案根目錄相關聯。
Microsoft.Build.Evaluation.Context 全部 包含 EvaluationContext 類別 (用來儲存每次呼叫的評估狀態)。
Microsoft.Build.Exceptions 全部 包含建置過程可能擲出的異常類型。
Microsoft.Build.Execution 全部 包含 MSBuild 物件模型用來建置專案的類型。
Microsoft.Build.Framework 全部 包含定義工作和記錄器如何與 MSBuild 引擎互動的型別。
Microsoft.Build.Framework.Profiler 全部 包含支援效能分析的類型。
Microsoft.Build.Framework.XamlTypes 僅限 .NET Framework 包含用來表示從檔案、規則和其他來源中剖析的 XAML 類型的類別。
Microsoft.Build.Globbing 全部 包含支援萬用字元處理的類別。
Microsoft.Build.Globbing.Extensions 全部 包含支援萬用字元處理延伸模組的類型。
Microsoft.Build.Graph 全部 包含支援 -graph MSBuild 參數的類型。
Microsoft.Build.Logging 全部 包含用來記錄組建進度的類型。
Microsoft.Build.ObjectModelRemoting 全部 包含支援 MSBuild 中遠端處理的類型。
Microsoft.Build.Tasks 全部 包含 MSBuild 中所提供的所有工作實作。
Microsoft.Build.Tasks.Deployment.Bootstrapper 僅限 .NET Framework 包含 MSBuild 內部使用的類別。
Microsoft.Build.Tasks.Deployment.ManifestUtilities 僅限 .NET Framework 包含 MSBuild 使用的類別。
Microsoft.Build.Tasks.Hosting 全部 包含 MSBuild 內部使用的類別。
Microsoft.Build.Tasks.Xaml 僅限 .NET Framework 包含與 XAML 建置工作相關的類別。
Microsoft.Build.Utilities 全部 包含一些協助程式類別,您可用來建立自己的 MSBuild 記錄器和工作。

在上表中,「適用於」欄中的「全部」表示命名空間中的類型在 MSBuild API 的 .NET Framework 和 .NET Core 版本中都可以使用。