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.