Condividi tramite


Usare l'API MSBuild

MSBuild fornisce una superficie API pubblica in modo che il programma possa eseguire compilazioni ed esaminare i progetti. Le versioni recenti delle API MSBuild sono disponibili nei pacchetti NuGet seguenti:

Nome del pacchetto Descrizione
Microsoft.Build Contiene l'assembly Microsoft.Build usato per creare, modificare e valutare progetti MSBuild.
Microsoft.Build.Framework Contiene l'assembly comune del framework MSBuild usato da altri assembly MSBuild.
Microsoft.Build.Runtime Recapita una copia eseguibile completa di MSBuild. Fare riferimento a questo pacchetto solo se l'applicazione deve caricare progetti o eseguire compilazioni in-process senza richiedere l'installazione di MSBuild. La valutazione corretta dei progetti che usano questo pacchetto richiede l'aggregazione di componenti aggiuntivi (ad esempio i compilatori) in una directory dell'applicazione.
Microsoft.Build.Tasks.Core Contiene l'assembly Microsoft.Build.Tasks che implementa le attività comunemente usate di MSBuild.
Microsoft.Build.Utilities.Core Contiene l'assembly Microsoft.Build.Utilities usato per implementare attività MSBuild personalizzate.

NuGet ospita anche un assembly legacy, Microsoft.Build.Engine, deprecato.

Esistono diverse versioni dell'API MSBuild e, per le versioni 15 e 16, esistono due forme distinte degli assembly nei pacchetti NuGet, una compilata con .NET Framework e un'altra compilata con .NET Core, ovvero un subset della superficie API .NET Framework. La versione .NET Core di MSBuild viene usata quando si richiama il dotnet comando e quando si usa MSBuild nei sistemi Mac e Linux.

La documentazione per l'API MSBuild è disponibile usando il Browser API .NET o esplorando gli spazi dei nomi nell'elenco seguente.

Namespace Si applica a Descrizione
Microsoft.Build.Construction Tutti Contiene tipi usati dal modello a oggetti di MSBuild per costruire radici di progetto con valori non valutati. Ogni radice del progetto corrisponde a un progetto o a un file di destinazione.
Microsoft.Build.Definition Tutti Contiene la classe ProjectOptions, che supporta la costruzione del progetto.
Microsoft.Build.Evaluation Tutti Contiene tipi usati dal modello a oggetti di MSBuild per valutare i progetti. Ogni progetto è associato a una o più radici del progetto.
Microsoft.Build.Evaluation.Context Tutti Contiene la EvaluationContext classe utilizzata per archiviare lo stato di valutazione tra le chiamate.
Microsoft.Build.Exceptions Tutti Contiene tipi di eccezione che possono essere generati durante il processo di compilazione.
Microsoft.Build.Execution Tutti Contiene tipi usati dal modello a oggetti di MSBuild per compilare progetti.
Microsoft.Build.Framework Tutti Contiene i tipi che definiscono il modo in cui le attività e i logger interagiscono con il motore MSBuild.
Microsoft.Build.Framework.Profiler Tutti Contiene i tipi che supportano la profilatura delle prestazioni.
Microsoft.Build.Framework.XamlTypes Esclusivamente .NET Framework Contiene classi usate per rappresentare i tipi XAML analizzati da file, regole e altre origini.
Microsoft.Build.Globbing Tutti Contiene classi che supportano l'elaborazione dei caratteri jolly.
Microsoft.Build.Globbing.Extensions Tutti Contiene tipi che supportano estensioni per l'elaborazione di caratteri jolly.
Microsoft.Build.Graph Tutti Contiene tipi che supportano l'opzione -graph MSBuild.
Microsoft.Build.Logging Tutti Contiene i tipi usati per registrare lo stato di avanzamento di una compilazione.
Microsoft.Build.ObjectModelRemoting Tutti Contiene tipi che supportano la comunicazione remota in MSBuild.
Microsoft.Build.Tasks Tutti Contiene l'implementazione di tutte le attività di spedizione con MSBuild.
Microsoft.Build.Tasks.Deployment.Bootstrapper Esclusivamente .NET Framework Contiene le classi usate internamente da MSBuild.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Esclusivamente .NET Framework Contiene classi usate da MSBuild.
Microsoft.Build.Tasks.Hosting Tutti Contiene le classi usate internamente da MSBuild.
Microsoft.Build.Tasks.Xaml Esclusivamente .NET Framework Contiene classi correlate alle attività di compilazione XAML.
Microsoft.Build.Utilities Tutti Contiene classi helper che è possibile usare per creare logger e attività MSBuild personalizzati.

Nella tabella precedente, Tutti nella colonna Applica a indica che i tipi nello spazio dei nomi sono disponibili sia nel .NET Framework che nel .NET Core dell'API MSBuild.

Localizzatore MSBuild

MSBuild Locator è un'API che è possibile usare per trovare MSBuild in un computer. È possibile usarlo nello sviluppo di strumenti di compilazione, quando si desidera trovare le versioni installate di MSBuild.

NuGetPackage è disponibile in Microsoft.Build.Locator e la documentazione di riferimento è disponibile in Microsoft.

Per altre informazioni su MSBuildLocator, vedere Trovare e usare le versioni di MSBuild.