Compartilhar 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 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. Avaliar projetos com êxito usando esse pacote requer agregar componentes adicionais (como os compiladores) em um diretório de aplicativo.
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 está obsoleto.

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 do .NET Framework. A versão do .NET Core do MSBuild é usada quando você invoca o dotnet comando 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 Todos Contém tipos que o modelo de objeto MSBuild usa para construir raízes de projeto com valores não avaliados. Cada raiz do projeto corresponde a um arquivo de projeto ou de destino.
Microsoft.Build.Definition Todos Contém a ProjectOptions classe, que dá suporte à construção do projeto.
Microsoft.Build.Evaluation Todos Contém tipos que o modelo de objeto MSBuild usa para avaliar projetos. Cada projeto está associado a uma ou mais raízes de projeto.
Microsoft.Build.Evaluation.Context Todos Contém a classe EvaluationContext, usada para armazenar o estado de avaliação entre chamadas.
Microsoft.Build.Exceptions Todos Contém tipos de exceção que podem ser gerados durante o processo de build.
Microsoft.Build.Execution Todos Contém tipos que o modelo de objeto MSBuild usa para criar projetos.
Microsoft.Build.Framework Todos Contém os tipos que definem como tarefas e registradores interagem com o mecanismo MSBuild.
Microsoft.Build.Framework.Profiler Todos 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 fontes.
Microsoft.Build.Globbing Todos Contém classes que dão suporte ao processamento de caracteres curinga.
Microsoft.Build.Globbing.Extensions Todos Contém tipos que dão suporte a extensões para processamento de wildcards.
Microsoft.Build.Graph Todos Contém tipos que dão suporte ao comutador -graph MSBuild.
Microsoft.Build.Logging Todos Contém tipos usados para registrar em log o progresso de um build.
Microsoft.Build.ObjectModelRemoting Todos Contém tipos que dão suporte à remotização no MSBuild.
Microsoft.Build.Tasks Todos Contém a implementação de todas as tarefas incluídas no 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 que o MSBuild usa.
Microsoft.Build.Tasks.Hosting Todos 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 Todos Contém classes auxiliares que você pode usar para criar seus próprios registradores 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.

Localizador do MSBuild

O Localizador MSBuild é uma API que você pode usar para localizar o MSBuild em um computador. Você pode usá-lo no desenvolvimento de ferramentas de build quando quiser encontrar versões instaladas do MSBuild.

O NuGetPackage está em Microsoft.Build.Locator e a documentação de referência está na Microsoft.

Para obter mais informações sobre o MSBuildLocator, consulte Localizar e usar versões do MSBuild.