Share via


Usar a API do MSBuild

O MSBuild fornece uma superfície de API pública para que seu programa possa executar builds e inspecionar projetos. Versões recentes das APIs do MSBuild podem ser encontradas nos seguintes pacotes NuGet:

Nome do pacote Descrição
Microsoft.Build Contém o assembly Microsoft.Build que é usado para criar, editar e avaliar projetos do MSBuild.
Microsoft.Build.Framework Contém o assembly de estrutura comum do MSBuild usado por outros assemblies do MSBuild.
Microsoft.Build.Runtime Fornece uma cópia executável completa do MSBuild. Faça referência a esse pacote somente se o aplicativo precisar carregar projetos ou executar builds em processo sem a necessidade de instalação do MSBuild. A avaliação bem-sucedida de projetos usando esse pacote requer a agregação de componentes adicionais (como os compiladores) em um diretório de aplicativos.
Microsoft.Build.Tasks.Core Contém o assembly Microsoft.Build.Tasks que implementa as tarefas comumente usadas do MSBuild.
Microsoft.Build.Utilities.Core Contém o assembly Microsoft.Build.Utilities que é usado para implementar tarefas personalizadas do MSBuild.

Além disso, o NuGet também hospeda um assembly herdado, Microsoft.Build.Engine, que foi preterido.

Há várias versões diferentes da API do MSBuild e, para as versões 15 e 16, há duas formas distintas dos assemblies nos pacotes NuGet, uma compilada com o .NET Framework e outra compilada com o .NET Core, que é um subconjunto da superfície da API .NET Framework. A versão do .NET Core do MSBuild é usada quando você invoca o comando dotnet e ao usar o MSBuild em sistemas Mac e Linux.

A documentação da API do MSBuild pode ser encontrada usando o Navegador de API do .NET ou navegando pelos namespaces na lista a seguir.

Namespace Aplica-se A Descrição
Microsoft.Build.Construction Tudo Contém tipos que o modelo de objeto do MSBuild usa para construir raízes de projeto com valores não avaliados. Cada raiz de projeto corresponde a um arquivo de projeto ou de destino.
Microsoft.Build.Definition Tudo Contém a classe ProjectOptions, que dá suporte à construção do projeto.
Microsoft.Build.Evaluation Tudo Contém tipos que o modelo de objeto do MSBuild usa para avaliar projetos. Cada projeto é associado a uma ou mais raízes de projeto.
Microsoft.Build.Evaluation.Context Tudo Contém a classe EvaluationContext, usada para armazenar o estado de avaliação entre chamadas.
Microsoft.Build.Exceptions Tudo Contém tipos de exceção que podem ser gerados durante o processo de build.
Microsoft.Build.Execution Tudo Contém tipos que o modelo de objeto do MSBuild usa para criar projetos.
Microsoft.Build.Framework Tudo Contém os tipos que definem como as tarefas e os agentes interagem com o mecanismo MSBuild.
Microsoft.Build.Framework.Profiler Tudo Contém os tipos que dão suporte à criação de perfil de desempenho.
Microsoft.Build.Framework.XamlTypes Somente .NET Framework Contém classes usadas para representar tipos XAML analisados de arquivos, regras e outras origens.
Microsoft.Build.Globbing Tudo Contém classes que dão suporte ao processamento curinga.
Microsoft.Build.Globbing.Extensions Tudo Contém tipos que dão suporte a extensões para processamento curinga.
Microsoft.Build.Graph Tudo Contém tipos que dão suporte à opção MSBuild -graph.
Microsoft.Build.Logging Tudo Contém tipos usados para registrar em log o progresso de um build.
Microsoft.Build.ObjectModelRemoting Tudo Contém tipos que dão suporte à comunicação remota no MSBuild.
Microsoft.Build.Tasks Tudo Contém a implementação de todas as tarefas fornecidas com o MSBuild.
Microsoft.Build.Tasks.Deployment.Bootstrapper Somente .NET Framework Contém classes usadas internamente pelo MSBuild.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Somente .NET Framework Contém classes usadas pelo MSBuild.
Microsoft.Build.Tasks.Hosting Tudo Contém classes usadas internamente pelo MSBuild.
Microsoft.Build.Tasks.Xaml Somente .NET Framework Contém classes relacionadas a tarefas de build XAML.
Microsoft.Build.Utilities Tudo Contém classes auxiliares que podem ser usadas para criar agentes e tarefas do MSBuild.

Na tabela anterior, Todos na coluna Aplica-se a significa que os tipos no namespace estão disponíveis nas versões do .NET Framework e do .NET Core da API do MSBuild.