Novedades de MSBuild 15What's new in MSBuild 15

MSBuild ahora está disponible como parte del SDK de .NET Core y puede compilar proyectos de .NET Core en Windows, Mac OS y Linux.MSBuild is now available as part of the .NET Core SDK and can build .NET Core projects on Windows, macOS, and Linux.

Ruta de acceso cambiadaChanged path

MSBuild ahora se instala en una carpeta bajo cada versión de Visual Studio.MSBuild is now installed in a folder under each version of Visual Studio. Por ejemplo, C:\Archivos de programa (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild.For example, C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild. También puede utilizar el siguiente módulo de PowerShell para localizar MSBuild: vssetup.powershell.You can also use the following PowerShell module to locate MSBuild: vssetup.powershell.

MSBuild ya no se instala en la memoria caché global de ensamblados.MSBuild is no longer installed in the Global Assembly Cache. Para hacer referencia a MSBuild mediante programación, use paquetes NuGet.To reference MSBuild programmatically, use NuGet packages.

Propiedades cambiadasChanged properties

Las siguientes propiedades de MSBuild se han actualizado debido al nuevo número de versión.The following MSBuild properties have been updated due to the new version number.

  • MSBuildToolsVersion para esta versión de las herramientas es 15.0.MSBuildToolsVersion for this version of the tools is 15.0. La versión de ensamblado es 15.1.0.0.The assembly version is 15.1.0.0.

  • MSBuildToolsPath ya no tiene una ubicación fija.MSBuildToolsPath no longer has a fixed location. De forma predeterminada, se encuentra en la carpeta MSBuild\15.0\Bin relativa a la ubicación de instalación de Visual Studio, pero la ubicación de instalación de Visual Studio se puede cambiar en el momento de la instalación.By default, it is located in the MSBuild\15.0\Bin folder relative to the Visual Studio installation location, but the Visual Studio installation location can be changed at install time.

  • Los valores ToolsVersion ya no se establecen en el registro.ToolsVersion values are no longer set in the registry.

  • Las propiedades SDK35ToolsPath y SDK40ToolsPath apuntan al .NET Framework SDK que se incluye con esta versión de Visual Studio (por ejemplo, 10.0A para la versión 4.X de las herramientas).The SDK35ToolsPath and SDK40ToolsPath properties point to the .NET Framework SDK that's packaged with this version of Visual Studio (for example, 10.0A for the 4.X tools).

ActualizacionesUpdates

  • El elemento Project tiene un nuevo atributo SDK.Project element has a new SDK attribute. También el atributo Xmlns es opcional ahora.Also the Xmlns attribute is now optional. Para más información sobre el atributo SDK, consulte Uso de los SDK de proyecto de MSBuild, Paquetes, metapaquetes y marcos de trabajo y Adiciones al formato csproj para .NET Core.For more information on the SDK attribute, see How to: Use MSBuild project SDKs, Packages, metapackages, and frameworks and Additions to the csproj format for .NET Core.
  • El elemento Item tiene un nuevo atributo Update.Item element outside targets has a new Update attribute. Además, la restricción en el atributo Remove se ha eliminado.Also, the restriction on the Remove attribute has been eliminated.
  • Directory.Build.props es un archivo definido por el usuario que proporciona personalizaciones a los proyectos de un directorio.Directory.Build.props is a user-defined file that provides customizations to projects under a directory. Este archivo se importa automáticamente desde Microsoft.Common.props, a menos que la propiedad ImportDirectoryBuildTargets esté establecida en false.This file is automatically imported from Microsoft.Common.props unless the property ImportDirectoryBuildTargets is set to false. Directory.Build.targets lo importa Microsoft.Common.targets.Directory.Build.targets is imported by Microsoft.Common.targets.
  • Los metadatos con un nombre que no entre en conflicto con la lista actual de atributos pueden expresarse opcionalmente como un atributo.Any metadata with a name that doesn't conflict with the current list of attributes can optionally be expressed as an attribute. Para más información, consulte Elemento Item.For more information, see Item element.

Nuevas funciones de propiedadNew property functions

  • EnsureTrailingSlash agrega una barra diagonal final a una ruta de acceso si no existe una.EnsureTrailingSlash adds a trailing slash to a path if one doesn't already exist.
  • NormalizePath combina elementos de ruta de acceso y garantiza que la cadena de salida tiene los caracteres separadores de directorio correctos para el sistema operativo actual.NormalizePath combines path elements and ensures that the output string has the correct directory separator characters for the current operating system.
  • NormalizeDirectory combina elementos de ruta de acceso, garantiza una barra diagonal inicial y asegura que la cadena de salida tiene los caracteres separadores de directorio correctos para el sistema operativo actual.NormalizeDirectory combines path elements, ensures a trailing slash, and ensures that the output string has the correct directory separator characters for the current operating system.
  • GetPathOfFileAbove devuelve la ruta de acceso del archivo inmediatamente anterior a este.GetPathOfFileAbove returns the path of the file immediately preceding this one. Es funcionalmente equivalente a llamar a <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />.It is functionally equivalent to calling <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />

Vea tambiénSee also

MSBuildMSBuild