Partilhar via


Usar a API do MSBuild

MSBuild fornece uma superfície de API pública para que seu programa possa executar compilações 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 MSBuild.
Microsoft.Build.Framework Contém o assembly comum da estrutura MSBuild usado por outros assemblies MSBuild.
Microsoft.Build.Runtime Fornece uma cópia executável completa do MSBuild. Consulte este pacote somente se seu aplicativo precisar carregar projetos ou executar compilações em processo sem exigir a instalação do MSBuild. A avaliação bem-sucedida de projetos usando este 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 marcado como 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 .NET Core do MSBuild é utilizada quando se invoca o comando dotnet e ao usar o MSBuild em sistemas Mac e Linux.

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

Espaço de nomes 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 de projeto corresponde a um projeto ou arquivo de destinos.
Microsoft.Build.Definition Todos Contém a classe ProjectOptions, que suporta a 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 do projeto.
Microsoft.Build.Evaluation.Context Todos Contém a classe EvaluationContext, usada para armazenar o estado de avaliação durante chamadas.
Microsoft.Build.Exceptions Todos Contém tipos de exceção que podem ser lançados durante o processo de compilação.
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 oferecem 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 suportam processamento de curingas.
Microsoft.Build.Globbing.Extensions Todos Contém tipos que suportam extensões para o processamento de wildcards.
Microsoft.Build.Graph Todos Contém tipos que suportam a -graph opção MSBuild.
Microsoft.Build.Logging Todos Contém tipos usados para registrar o progresso de uma compilação.
Microsoft.Build.ObjectModelRemoting Todos Contém tipos que suportam remotização no MSBuild.
Microsoft.Build.Tasks Todos Contém a implementação de todas as tarefas enviadas 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 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 compilação 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, "Tudo" na coluna "Aplica-se a" significa que os tipos no espaço de nomes estão disponíveis tanto nas versões do .NET Framework como do .NET Core da API do MSBuild.

Localizador MSBuild

MSBuild Locator é uma API que você pode usar para localizar o MSBuild em uma máquina. Você pode usá-lo no desenvolvimento de ferramentas de compilação, quando quiser encontrar versões instaladas do MSBuild.

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

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