MSBuild 15의 새로운 기능

MSBuild는 현재 .NET Core SDK의 일부로 제공되며 Windows, macOS 및 Linux에서 .NET Core 프로젝트를 빌드할 수 있습니다.

변경된 경로

MSBuild는 이제 각 Visual Studio 버전 아래의 폴더에 설치됩니다. 예: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild. 또한 다음 PowerShell 모듈을 사용하여 MSBuild를 찾을 수도 있습니다. vssetup.powershell.

MSBuild는 전역 어셈블리 캐시에 더 이상 설치되지 않습니다. MSBuild를 프로그래밍 방식으로 참조하려면 NuGet 패키지를 사용하세요. 자세한 내용은 MSBuild 15.0에 대한 기존 애플리케이션 업데이트를 참조하세요.

변경된 속성

다음 MSBuild 속성은 새 버전 번호의 결과로 업데이트되었습니다.

  • 이 도구 버전의 MSBuildToolsVersion은 15.0입니다. 어셈블리 버전은 15.1.0.0입니다.

  • MSBuildToolsPath는 더 이상 고정된 위치를 포함하지 않습니다. 기본적으로 Visual Studio 설치 위치를 기준으로 MSBuild\15.0\Bin 폴더에 있지만 Visual Studio 설치 위치는 설치 시 변경할 수 있습니다.

  • ToolsVersion 값은 더 이상 레지스트리에 설정되지 않습니다.

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

업데이트

  • Project 요소는 새 SDK 특성을 포함합니다. 이제 Xmlns 특성도 선택 사항입니다. SDK 특성에 대한 자세한 내용은 방법: MSBuild 프로젝트 SDK 사용, 패키지, 메타패키지, 프레임워크.NET Core용 csproj 형식에 대한 추가 사항을 참조하세요.
  • 대상 외부의 Item 요소는 새 Update 특성을 포함합니다. 또한 Remove 특성 대한 제한 사항도 제거되었습니다.
  • Directory.Build.propsDirectory.Build.targets는 디렉터리 아래의 프로젝트에 사용자 지정을 제공하는 사용자 정의 파일입니다. ImportDirectoryBuildProps 속성을 false로 설정한 경우가 아니면 Directory.Build.propsMicrosoft.Common.props에서 자동으로 가져옵니다. ImportDirectoryBuildTargets 속성을 false로 설정한 경우가 아니면 Directory.Build.targetsMicrosoft.Common.targets가 자동으로 가져옵니다.
  • 현재 특성 목록과 충돌하지 않는 이름을 가진 메타데이터를 특성으로 선택적으로 표시할 수 있습니다. 자세한 내용은 Item 요소를 참조하세요.

새 속성 함수

  • EnsureTrailingSlash는 경로에 후행 슬래시(없는 경우)를 추가합니다.
  • NormalizePath는 path 요소를 결합하고 출력 문자열에 현재 운영 체제에 대한 정확한 디렉터리 구분 문자가 있는지 확인합니다.
  • NormalizeDirectory는 path 요소를 결합하고 후행 슬래시를 확인하며 출력 문자열에 현재 운영 체제에 대한 정확한 디렉터리 구분 문자가 있는지 확인합니다.
  • GetPathOfFileAbove는 바로 앞에 오는 파일의 경로를 반환합니다. <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />를 호출하는 것과 기능적으로 동일합니다.