Использование API MSBuild

MSBuild предоставляет общедоступный интерфейс API, который позволяет программам выполнять сборку и проверять проекты. Последние версии API MSBuild можно найти в следующих пакетах NuGet:

Имя пакета Description
Microsoft.Build Содержит сборку Microsoft.Build, которая используется для создания, изменения и вычисления проектов MSBuild.
Microsoft.Build.Framework Содержит общую сборку платформы MSBuild, используемую другими сборками MSBuild.
Microsoft.Build.Runtime Предоставляет полную исполняемую копию MSBuild. Ссылаться на этот пакет следует только в том случае, если приложению требуется загружать проекты или выполнять внутрипроцессные сборки без установки MSBuild. Для успешного вычисления проектов, использующих этот пакет, необходимо выполнить статистическую обработку дополнительных компонентов (например, компиляторов) в каталоге приложения.
Microsoft.Build.Tasks.Core Содержит сборку Microsoft.Build.Tasks, которая реализует часто используемые задачи MSBuild.
Microsoft.Build.Utilities.Core Содержит сборку Microsoft.Build.Utilities, которая используется для реализации пользовательских задач MSBuild.

Кроме того, NuGet также содержит устаревшую сборку Microsoft.Build.Engine, использовать которую не рекомендуется.

Существует несколько различных версий API MSBuild, а для версий 15 и 16 существует две различные формы сборок в пакетах NuGet, одна из которых компилируется с .NET Framework, а другая — с .NET Core, который является подмножеством API .NET Framework. Версия .NET Core MSBuild используется при вызове команды dotnet и при использовании MSBuild в системах Mac и Linux.

Документацию по API MSBuild можно найти с помощью Браузера .NET API или в списке пространств имен, приведенных ниже.

Пространство имен Применяется к Description
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.

В приведенной выше таблице "Все" в столбце "Применение" означает, что типы в пространстве имен доступны как в .NET Framework, так и в версиях .NET Core для API MSBuild.