Compartir a través de


Uso de la API de MSBuild

MSBuild proporciona una superficie de API pública para que el programa pueda realizar compilaciones e inspeccionar proyectos. Las versiones recientes de las API de MSBuild se pueden encontrar en los siguientes paquetes NuGet:

Nombre del paquete Descripción
Microsoft.Build Contiene el ensamblado Microsoft.Build que se usa para crear, editar y evaluar proyectos de MSBuild.
Microsoft.Build.Framework Contiene el ensamblado de marco de MSBuild común que usan otros ensamblados de MSBuild.
Microsoft.Build.Runtime Proporciona una copia ejecutable completa de MSBuild. Haga referencia a este paquete solo si la aplicación necesita cargar proyectos o ejecutar compilaciones en proceso sin necesidad de instalar MSBuild. La evaluación correcta de los proyectos que usan este paquete requiere la agregación de componentes adicionales (como los compiladores) en un directorio de aplicación.
Microsoft.Build.Tasks.Core Contiene el ensamblado Microsoft.Build.Tasks que implementa las tareas más usadas de MSBuild.
Microsoft.Build.Utilities.Core Contiene el ensamblado Microsoft.Build.Utilities que se usa para implementar tareas personalizadas de MSBuild.

Además, NuGet también hospeda un ensamblado heredado, Microsoft.Build.Engine, que está en desuso.

Hay varias versiones diferentes de la API de MSBuild y, para las versiones 15 y 16, hay dos formas distintas de los ensamblados en los paquetes NuGet, uno compilado con .NET Framework y otro compilado con .NET Core, que es un subconjunto de la superficie de api de .NET Framework. La versión de .NET Core de MSBuild se usa al invocar el dotnet comando y cuando se usa MSBuild en sistemas Mac y Linux.

La documentación de la API de MSBuild se puede encontrar mediante el explorador de API de .NET o examinando los espacios de nombres de la lista siguiente.

Namespace Se aplica a Descripción
Microsoft.Build.Construction Todos Contiene tipos que usa el modelo de objetos de MSBuild para construir raíces del proyecto con valores no evaluados. Cada raíz del proyecto corresponde a un proyecto o archivo de destinos.
Microsoft.Build.Definition Todos Contiene la clase ProjectOptions, que admite la construcción del proyecto.
Microsoft.Build.Evaluation Todos Contiene tipos que usa el modelo de objetos de MSBuild para evaluar proyectos. Cada proyecto está asociado a una o varias raíces del proyecto.
Microsoft.Build.Evaluation.Context Todos Contiene la EvaluationContext clase , que se usa para almacenar el estado de evaluación entre las llamadas.
Microsoft.Build.Exceptions Todos Contiene tipos de excepción que se pueden producir durante el proceso de compilación.
Microsoft.Build.Execution Todos Contiene tipos que usa el modelo de objetos de MSBuild para compilar proyectos.
Microsoft.Build.Framework Todos Contiene los tipos que definen cómo interactúan las tareas y registradores con el motor de MSBuild.
Microsoft.Build.Framework.Profiler Todos Contiene los tipos que admiten la generación de perfiles de rendimiento.
Microsoft.Build.Framework.XamlTypes Solo para .NET Framework Contiene clases usadas para representar tipos XAML analizados de archivos, reglas y otros orígenes.
Microsoft.Build.Globbing Todos Contiene clases que admiten el procesamiento de caracteres comodín.
Microsoft.Build.Globbing.Extensions Todos Contiene tipos que admiten extensiones para el procesamiento de caracteres comodín.
Microsoft.Build.Graph Todos Contiene tipos que admiten la -graph opción de MSBuild.
Microsoft.Build.Logging Todos Contiene tipos usados para registrar el progreso de una compilación.
Microsoft.Build.ObjectModelRemoting Todos Contiene tipos que admiten la comunicación remota en MSBuild.
Microsoft.Build.Tasks Todos Contiene la implementación de todas las tareas que se envían con MSBuild.
Microsoft.Build.Tasks.Deployment.Bootstrapper Solo para .NET Framework Contiene clases usadas internamente por MSBuild.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Solo para .NET Framework Contiene clases que utiliza MSBuild.
Microsoft.Build.Tasks.Hosting Todos Contiene clases usadas internamente por MSBuild.
Microsoft.Build.Tasks.Xaml Únicamente .NET Framework Contiene clases relacionadas con las tareas de compilación xaml.
Microsoft.Build.Utilities Todos Contiene clases auxiliares que puede usar para crear sus propios registradores y tareas de MSBuild.

En la tabla anterior, Todas en la columna Se aplica a significa que los tipos del espacio de nombres están disponibles en las versiones para .NET Framework y .NET Core de la API MSBuild.

Localizador de MSBuild

Localizador de MSBuild es una API que puede usar para buscar MSBuild en una máquina. Puede usarlo en el desarrollo de herramientas de compilación, cuando quiera buscar versiones instaladas de MSBuild.

NuGetPackage se encuentra en Microsoft.Build.Locator y la documentación de referencia está en Microsoft.

Para obtener más información sobre MSBuildLocator, consulte Buscar y usar versiones de MSBuild.