Partilhar via


O que há de novo no MSBuild 15

O MSBuild agora está disponível como parte do SDK do .NET Core e pode criar projetos do .NET Core no Windows, macOS e Linux.

Caminho alterado

MSBuild agora está instalado em uma pasta em cada versão do Visual Studio. Por exemplo, C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild. Você também pode usar o seguinte módulo do PowerShell para localizar MSBuild: vssetup.powershell.

MSBuild não está mais instalado no cache de assembly global. Para fazer referência ao MSBuild programaticamente, use pacotes NuGet.

Propriedades alteradas

As seguintes propriedades do MSBuild foram atualizadas devido ao novo número de versão.

  • A versão das ferramentas MSBuildToolsVersion é 15.0. A versão do assembly é 15.1.0.0.

  • MSBuildToolsPath não tem mais um local fixo. Por padrão, ele está localizado na pasta MSBuild\15.0\Bin em relação ao local de instalação do Visual Studio, mas o local de instalação do Visual Studio pode ser alterado no momento da instalação.

  • ToolsVersion Os valores não são mais definidos no Registro.

  • As SDK35ToolsPath propriedades e SDK40ToolsPath apontam para o SDK do .NET Framework fornecido com esta versão do Visual Studio (por exemplo, 10.0A para as ferramentas 4.X).

Atualizações

  • O elemento Project tem um novo SDK atributo. Além disso, o Xmlns atributo agora é opcional. Para obter mais informações sobre o atributo SDK, consulte Como: Usar SDKs de projeto MSBuild, Pacotes, metapacotes e frameworks e Adições ao formato csproj para .NET Core.
  • O elemento item fora dos destinos tem um novo Update atributo. Além disso, a restrição sobre o Remove atributo foi eliminada.
  • Directory.Build.props e Directory.Build.targets são arquivos definidos pelo usuário que fornecem personalizações para projetos em um diretório. Directory.Build.props é importado automaticamente de Microsoft.Common.props , a menos que a propriedade ImportDirectoryBuildProps esteja definida como false. Directory.Build.targets é importado automaticamente por Microsoft.Common.targets , a menos que a propriedade ImportDirectoryBuildTargets esteja definida como false.
  • Quaisquer metadados com um nome que não entre em conflito com a lista atual de atributos podem, opcionalmente, ser expressos como um atributo. Para obter mais informações, consulte Elemento Item.

Novas funções de propriedade

  • EnsureTrailingSlash adiciona uma barra final a um caminho, se ainda não existir.
  • NormalizePath Combina elementos de caminho e garante que a cadeia de caracteres de saída tenha os caracteres separadores de diretório corretos para o sistema operacional atual.
  • NormalizeDirectory combina elementos do caminho, garante uma barra final e assegura que a cadeia de caracteres de saída contenha os separadores de diretório adequados para o sistema operativo atual.
  • GetPathOfFileAbove retorna o caminho do arquivo imediatamente anterior a este. É funcionalmente equivalente a chamar <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />