Condividi tramite


Novità di MSBuild 15

MSBuild è ora disponibile come parte di .NET Core SDK e può compilare progetti .NET Core in Windows, macOS e Linux.

Percorso modificato

MSBuild è ora installato in una cartella in ogni versione di Visual Studio. Ad esempio, C:\Programmi (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild. È anche possibile usare il modulo di PowerShell seguente per individuare MSBuild: vssetup.powershell.

MSBuild non è più installato nella Global Assembly Cache. Per fare riferimento a MSBuild a livello di codice, usare i pacchetti NuGet.

Proprietà modificate

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

  • MSBuildToolsVersion per questa versione degli strumenti è 15.0. La versione dell'assembly è 15.1.0.0.

  • MSBuildToolsPath non ha più una posizione fissa. Per impostazione predefinita, si trova nella cartella MSBuild\15.0\Bin rispetto al percorso di installazione di Visual Studio, ma il percorso di installazione di Visual Studio può essere modificato in fase di installazione.

  • ToolsVersion i valori non vengono più impostati nel Registro di sistema.

  • Le proprietà SDK35ToolsPath e SDK40ToolsPath puntano al .NET Framework SDK impacchettato con questa versione di Visual Studio, ad esempio 10.0A per gli strumenti 4.X.

Aggiornamenti

  • L'elemento Project ha un nuovo SDK attributo. Anche l'attributo Xmlns è ora facoltativo. Per altre informazioni sull'attributo SDK , vedere Procedura: Usare SDK di progetto MSBuild, Pacchetti, metapacchetto e framework eaggiunte al formato csproj per .NET Core.
  • L'elemento Item esterno alle destinazioni ha un nuovo Update attributo. Inoltre, la restrizione per l'attributo Remove è stata eliminata.
  • Directory.Build.props e Directory.Build.targets sono file definiti dall'utente che forniscono personalizzazioni ai progetti in una directory. Directory.Build.props viene importato automaticamente da Microsoft.Common.props a meno che la proprietà ImportDirectoryBuildProps non sia impostata su false. Directory.Build.targets viene importato automaticamente da Microsoft.Common.targets , a meno che la proprietà ImportDirectoryBuildTargets non sia impostata su false.
  • I metadati con un nome che non è in conflitto con l'elenco corrente di attributi possono essere espressi facoltativamente come attributo. Per altre informazioni, vedere Elemento Item.

Nuove funzioni di proprietà

  • EnsureTrailingSlash aggiunge una barra finale a un percorso se non ne esiste già una.
  • NormalizePath combina gli elementi di percorso e garantisce che la stringa di output disponga dei caratteri separatori di directory corretti per il sistema operativo corrente.
  • NormalizeDirectory combina gli elementi del percorso, garantisce una barra finale e garantisce che la stringa di output contenga i caratteri separatori di directory corretti per il sistema operativo corrente.
  • GetPathOfFileAbove restituisce il percorso del file immediatamente precedente a questo. È funzionalmente equivalente alla chiamata <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />