MSBuild 도구 집합(ToolsVersion)

MSBuild도구 집합의 작업, 대상 및 도구를 사용 하 여 응용 프로그램을 작성 합니다.일반적으로 MSBuild microsoft.common.tasks 파일, microsoft.common.targets 파일을 및 csc.exe 및 vbc.exe 컴파일러 도구 집합에 포함 됩니다.대부분의 도구는.NET Framework 이상의 버전과 둘 이상의 시스템 플랫폼에 응용 프로그램을 컴파일하는 데 사용할 수 있습니다.그러나의 MSBuild 2.0 도구 집합 에서만 사용할 수 있습니다.NET Framework 2.0을 대상으로 합니다.

ToolsVersion 특성

도구 집합에서 지정은 ToolsVersion 특성의 프로젝트 요소는 프로젝트 파일에서.다음 예제에서는 MSBuild 2.0 도구 집합을 사용 하 여 프로젝트를 빌드해야 함을 지정 합니다.

<Project ToolsVersion="2.0" ... </Project>

ToolsVersion 특성의 작동 방법

Visual Studio 프로젝트를 만들거나 기존 프로젝트를 업그레이드 하는 경우 특성 이름은 ToolsVersion 자동으로 포함 됩니다 프로젝트에 파일 및 해당 값에 해당 Visual Studio 버전에 포함 되어 있는.NET Framework 버전.자세한 내용은 특정 .NET Framework 버전 또는 프로필을 대상으로 지정을 참조하십시오.

경우는 ToolsVersion 값은 프로젝트 파일에서 정의 된 경우 MSBuild 프로젝트에 사용할 수 있는 도구 집합 속성의 값을 결정 하는 값을 사용 합니다.하나의 도구 집합 속성 $(MSBuildToolsPath),.NET Framework 도구 경로 지정 합니다.만 해당 도구 집합 속성 (또는 $(MSBuildBinPath))에 필요 합니다.

다음 예제에서는 MSBuild Microsoft.CSharp.targets 파일을 사용 하 여 발견 된 MSBuildToolsPath 예약 속성.

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

값을 수정할 수 있습니다 MSBuildToolsPath 를 사용자 지정 도구 집합을 정의 합니다.자세한 내용은 표준 및 사용자 지정 도구 집합 구성를 참조하십시오.

명령줄에는 솔루션을 구축 하 고 지정 된 ToolsVersion msbuild.exe에 대 한 모든 프로젝트 및 프로젝트 간 의존 관계에 따라 빌드됩니다 ToolsVersion자체 솔루션의 각 프로젝트를 지정 하는 경우에 ToolsVersion.정의 하는 ToolsVersion 는 프로젝트 당 기준 값을 참조 하십시오 ToolsVersion 설정 재정의.

ToolsVersion 특성이 프로젝트 마이그레이션에 사용 되는.Visual Studio 2010 년 Visual Studio 2008 프로젝트를 열 경우 예를 들어, 프로젝트 파일 Toolsversion을 포함 하도록 업데이트 됩니다 "4.0" =.Visual Studio 2008에서 해당 프로젝트를 엽니다 하려면 다음 시도 하십시오 경우에 업그레이드 된 인식 하지 못하는 ToolsVersion 및 따라서 특성이 여전히 3.5로 설정 되어 있더라도 프로젝트를 빌드합니다.

2010 Visual Studio와 Visual Studio 2012 ToolsVersion 4.0 버전을 사용합니다.대부분의 경우, 수정 하지 않고 Visual Studio 두 버전에서 프로젝트를 열 수 있습니다.

MSBuild 빌드를 실행 하는 컨텍스트에 따라 사용 하는 도구 집합을 기반으로 자동으로 전환 하 도구 sub,이 항목의 뒷부분에 설명 되어 있음.예를 들어, 해당 Visual Studio 2010에서 해당 프로젝트 파일을 명시적으로 변경 하지 않고도 실행 될 때 보다 Visual Studio 2012에서 실행 될 때 MSBuild 새로운 도구 집합을 사용 합니다.자세한 내용은 방법: 프로젝트를 여러 버전의 Visual Studio 로드 되도록 프로젝트 시스템 수정을 참조하십시오.

도구 구현

다양 한 도구, 대상 및 도구 집합을 확인 하는 작업의 경로 선택 하 여 도구 집합을 구현 합니다.Msbuild를 정의 하는 도구 집합에 있는 도구는 다음 소스에서 제공 됩니다.

  • .NET Framework 폴더입니다.

  • 추가 관리 되는 도구입니다.

Resgen.exe와 TlbImp.exe 관리 도구를 포함합니다.

MSBuild 도구 집합에 액세스 하는 두 가지를 제공 합니다.

도구 집합 속성 도구 경로 지정합니다.Msbuild의 값을 사용 하 여 ToolsVersion 해당 레지스트리 키를 찾아 사용 하는 프로젝트 파일에서 도구 집합 속성을 설정 하 여 레지스트리 키의 정보 특성.예를 들어, 경우 ToolsVersion 값이 4.0, MSBuild 도구 집합 속성에 따라이 레지스트리 키를 설정한 다음: HKLM\Software\Microsoft\MSBuild\ToolsVersions\4.0.

다음 도구 집합 속성입니다.

  • MSBuildToolsPath.NET Framework 도구 경로 지정합니다.

  • SDK40ToolsPathMSBuild 4.0에 대 한 추가적인 관리 도구 경로 지정합니다.

  • SDK35ToolsPathMSBuild 3.5에 대 한 관리 되는 추가 도구 경로 지정합니다.

또는, 도구 집합을 프로그래밍 방식으로 메서드를 호출 하 확인할 수 있습니다에서 ToolLocationHelper 클래스입니다.이러한 메서드는 클래스를 포함:

Bb383796.collapse_all(ko-kr,VS.110).gif하위 도구 집합

이 항목의 앞부분에서 설명한 것과 같이 MSBuild 기본 도구 경로 지정할 수 레지스트리 키를 사용 합니다.키에 하위 키가 있을 경우 Msbuild의 추가 도구를 포함 하는 하위 도구 경로 지정을 사용 합니다.이 경우 도구 집합 두 키에서 정의 된 속성 정의 결합 하 여 정의 됩니다.

[!참고]

도구 집합 속성 이름과 충돌 하는 경우 하위 키 경로 대해 정의 된 값의 루트 키 경로가 정의 된 값을 재정의 합니다.

하위 도구 집합으로 presence의 활성은 VisualStudioVersion 속성이 빌드.이 속성을 다음이 값 중 하나 걸릴 수 있습니다.

  • "10.0".NET Framework 4 하위 도구 집합을 지정합니다.

  • "11.0".NET Framework 4.5 하위 도구 집합을 지정합니다.

빌드 동안 MSBuild 자동으로 결정 하 고 기본값을 설정 하 여 VisualStudioVersion 속성이 이미 정의 되어 있는 경우.

Msbuild에 대 한 오버 로드를 제공은 ToolLocationHelper 추가 메서드는 VisualStudioVersion 열거형 값을 매개 변수로.또한 MSBuild 경로 추가 네이티브 도구를 반환 하는 이러한 새 메서드를 제공 합니다.

  • GetPathToWindowsSdk

  • GetPathToWindowsSdkFile

이러한 새 메서드를 사용할 수도 있는 VisualStudioVersion 열거형 값을 매개 변수로 사용 하는 하위 도구를 결정 합니다.VisualStudioVersion 열거형 값 중 하나를 가질 수 있습니다.

  • VisualStudio10

  • VisualStudio11

  • VisualStudioLatest

하위 도구.NET Framework 4.5에서 도입 되었습니다.

참고 항목

개념

표준 및 사용자 지정 도구 집합 구성

기타 리소스

MSBuild 다중 대상 개요