MSBuild 15의 새로운 기능What's New in MSBuild 15

MSBuild는 현재 .NET Core SDK의 일부로 제공되며 Windows, macOS 및 Linux에서 .NET Core 프로젝트를 빌드할 수 있습니다.MSBuild is now available as part of the .NET Core SDK and can build .NET Core projects on Windows, macOS, and Linux.

변경된 경로Changed path

MSBuild는 이제 각 Visual Studio 버전 아래의 폴더에 설치됩니다.MSBuild is now installed in a folder under each version of Visual Studio. 예를 들어, C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild을 입력합니다.For example, C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild. 또한 다음 PowerShell 모듈을 사용하여 MSBuild를 찾을 수도 있습니다. vssetup.powershell.You can also use the following PowerShell module to locate MSBuild: vssetup.powershell.

MSBuild는 전역 어셈블리 캐시에 더 이상 설치되지 않습니다.MSBuild is no longer installed in the Global Assembly Cache. MSBuild를 프로그래밍 방식으로 참조하려면 NuGet 패키지를 사용하세요.To reference MSBuild programmatically, use NuGet packages.

변경된 속성Changed properties

다음 MSBuild 속성은 새 버전 번호의 결과로 업데이트되었습니다.The following MSBuild properties have been updated due to the new version number.

  • 이 도구 버전의 MSBuildToolsVersion은 15.0입니다.MSBuildToolsVersion for this version of the tools is 15.0. 어셈블리 버전은 15.1.0.0입니다.The assembly version is 15.1.0.0.

  • MSBuildToolsPath는 더 이상 고정된 위치를 포함하지 않습니다.MSBuildToolsPath no longer has a fixed location. 기본적으로 Visual Studio 설치 위치를 기준으로 MSBuild\15.0\Bin 폴더에 있지만 Visual Studio 설치 위치는 설치 시 변경할 수 있습니다.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.

  • ToolsVersion 값은 더 이상 레지스트리에 설정되지 않습니다.ToolsVersion values are no longer set in the registry.

  • SDK35ToolsPathSDK40ToolsPath 속성은 이 버전의 Visual Studio(예: 4.X 도구의 10.0A)를 사용하여 패키지된 .NET Framework SDK를 가리킵니다.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).

UpdatesUpdates

  • Project 요소는 새 SDK 특성을 포함합니다.Project Element has a new SDK attribute. 이제 Xmlns 특성도 선택 사항입니다.Also the Xmlns attribute is now optional.
  • 대상 외부의 Item 요소는 새 Update 특성을 포합합니다.Item Element outside targets has a new Update attribute. 또한 Remove 특성 대한 제한 사항도 제거되었습니다.Also, the restriction on the Remove attribute has been eliminated.
  • Directory.Build.props는 디렉터리 아래에 프로젝트에 대한 사용자 지정을 제공하는 사용자 정의 파일입니다.Directory.Build.props is a user-defined file that provides customizations to projects under a directory. ImportDirectoryBuildTargets 속성을 false로 설정한 경우가 아니면 Microsoft.Common.props에서 이 파일을 자동으로 가져옵니다.This file is automatically imported from Microsoft.Common.props unless the property ImportDirectoryBuildTargets is set to false. Directory.Build.targets는 Microsoft.Common.targets에서 가져옵니다.Directory.Build.targets is imported by Microsoft.Common.targets.
  • 현재 특성 목록과 충돌하지 않는 이름을 가진 메타데이터를 특성으로 선택적으로 표시할 수 있습니다.Any metadata with a name that doesn't conflict with the current list of attributes can optionally be expressed as an attribute. 자세한 내용은 Item 요소를 참조하세요.For more information, see Item Element.

새 속성 함수New property functions

  • EnsureTrailingSlash는 경로에 후행 슬래시(없는 경우)를 추가합니다.EnsureTrailingSlash adds a trailing slash to a path if one doesn't already exist.
  • NormalizePath는 path 요소를 결합하고 출력 문자열에 현재 운영 체제에 대한 정확한 디렉터리 구분 문자가 있는지 확인합니다.NormalizePath combines path elements and ensures that the output string has the correct directory separator characters for the current operating system.
  • NormalizeDirectory는 path 요소를 결합하고 후행 슬래시를 확인하며 출력 문자열에 현재 운영 체제에 대한 정확한 디렉터리 구분 문자가 있는지 확인합니다.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는 바로 앞에 오는 파일의 경로를 반환합니다.GetPathOfFileAbove returns the path of the file immediately preceding this one. <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />를 호출하는 것과 기능적으로 동일합니다.It is functionally equivalent to calling <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />

참고 항목See Also

MSBuildMSBuild