Condividi tramite


Novità di MSBuild 17

Questo articolo descrive aggiornamenti significativi in MSBuild 17.0. Per le note di rilascio dettagliate di ciascuna versione, vedere versioni di MSBuild.

MSBuild 17.0 fornito con Visual Studio 2022 e .NET 6.0.

Percorso modificato

MSBuild viene installato nella cartella \Current in ogni versione di Visual Studio e i file eseguibili si trovano nella sottocartella \Bin. Ad esempio, il percorso di MSBuild.exe installato con Visual Studio 2022 Community è C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe È anche possibile usare il modulo powerShell seguente per individuare MSBuild: vssetup.powershell.

Proprietà modificate

Le proprietà MSBuild seguenti sono state aggiornate a causa del nuovo numero di versione.

  • MSBuildToolsVersion per questa versione degli strumenti rimane "Current". La versione dell'assembly è identica a quella di Visual Studio 2017 e Visual Studio 2019, ovvero 15.1.0.0.

  • VisualStudioVersion per questa versione degli strumenti è "17.0"

64 bit

MSBuild.exe in precedenza avevano entrambe le versioni a 32 bit e a 64 bit, ma ora la versione a 64 bit è l'impostazione predefinita. Visual Studio 2022 usa la versione a 64 bit di MSBuild per tutte le compilazioni. La versione a 32 bit è ancora disponibile, ma è consigliabile passare a tutte le build alla versione a 64 bit.

Per i proprietari di attività, ciò significa che quando MSBuild carica l'attività, tenterà di caricarla in un processo a 64 bit. È consigliabile aggiornare le attività per l'esecuzione in un processo a 64 bit, ma per garantire la compatibilità, è possibile indicare a MSBuild che l'attività viene eseguita solo a 32 bit nel relativo UsingTask.

Miglioramenti delle prestazioni

MSBuild è più veloce. L'obiettivo di questa versione è stato quello di migliorare le prestazioni per molti scenari comuni. MSBuild 17.0 può compilare progetti di dimensioni maggiori, più velocemente.

Versioni di .NET

Ora MSBuild (e Visual Studio) puntano su .NET Framework 4.7.2 e .NET 6.0. Se si vogliono usare nuove funzionalità dell'API MSBuild, l'assembly deve anche eseguire l'aggiornamento, ma il codice esistente continuerà a funzionare.

Registri

I log binari sono più piccoli e contengono altre informazioni.

In MSBuild 17.8 e versioni successive provare il nuovo Logger terminal (-terminalLogger o -tl opzione nella riga di comando) per migliorare l'output della console.

Modifiche di rilievo

  • Il metodo GetType() non può più essere chiamato nelle funzioni di proprietà.
  • MSBuild per .NET è destinato a .NET 6.

Altre modifiche al comportamento

  • MSBuildCopyContentTransitively è ora attivo per impostazione predefinita, garantendo la coerenza nelle cartelle di output nelle compilazioni incrementali.

Per altre modifiche in questa versione, vedere le note dettagliate sulla versione e per le modifiche apportate alle versioni di MSBuild da cui è possibile rinunciare, vedere cicli di cambiamento.