ToolsVersion 설정 재정의

/ToolsVersion 스위치(또는 줄여서 /tv) 또는 $(ProjectToolsVersion) 속성을 사용하여 프로젝트 파일의 ToolsVersion 설정을 재정의할 수 있습니다. 이렇게 하면 솔루션에서 다른 프로젝트와 다른 도구 집합 버전을 사용하여 프로젝트를 빌드하는 등의 작업을 수행할 수 있습니다. 또한 ToolsVersion 작업 매개 변수를 사용하여 MSBuild 작업의 ToolsVersion을 재정의할 수도 있습니다.

ToolsVersion에 대한 자세한 내용은 MSBuild를 사용하여 특정 버전의 .NET Framework를 대상으로 지정을 참조하십시오.

명령줄 빌드에서 프로젝트의 ToolsVersion 설정 재정의

일반적으로 Visual Studio 2008 프로젝트는 프로젝트 파일에 지정된 ToolsVersion을 사용하여 빌드되지만 명령줄에서 /ToolsVersion 또는 /tv 스위치를 사용하여 해당 값을 재정의하면 다른 도구 집합을 사용하여 모든 프로젝트와 해당 프로젝트 간 종속성을 빌드할 수 있습니다. 예를 들면 다음과 같습니다.

C:\windows\microsoft.net\framework\v3.5>msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug

이 예제에서는 모든 프로젝트가 ToolsVersion 3.5를 사용하여 빌드됩니다. 자세한 내용은 이 항목의 뒷부분에 있는 "우선 순위" 단원을 참조하십시오.

명령줄에서 /tv 스위치를 사용하는 경우 선택적으로 개별 프로젝트에 $(ProjectToolsVersion) 속성을 사용하여 솔루션에 있는 다른 프로젝트와 다른 ToolsVersion 값을 사용하여 이러한 프로젝트를 빌드할 수 있습니다.

MSBuild 작업의 ToolsVersion 매개 변수를 사용하여 ToolsVersion 설정 재정의

MSBuild 작업은 한 프로젝트를 기반으로 다른 프로젝트를 빌드하는 기본 방법입니다. MSBuild 작업에는 프로젝트에 지정된 것과 다른 ToolsVersion을 사용하여 프로젝트를 빌드할 수 있도록 ToolsVersion이라는 선택적 작업 매개 변수가 제공됩니다. 다음 예제에서는 이 매개 변수를 사용하는 방법을 보여 줍니다.

<MSBuild Projects="MyProject1" 
         Targets="Build" 
         Properties="Configuration=Debug" 
         ToolsVersion="2.0">
    <Output TaskParameter="TargetOutputs" ItemName="Outputs" /> 
</MSBuild>

우선 순위

빌드할 프로젝트에서 사용하는 ToolsVersion을 결정하는 데 사용되는 우선 순위(내림차순)는 다음과 같습니다.

  1. 프로젝트를 빌드하는 데 사용되는 MSBuild 작업의 ToolsVersion 특성(있는 경우)

  2. msbuild.exe에 사용되는 /tv 스위치(있는 경우). 외부 msbuild 작업과 비슷합니다.

  3. 프로젝트 파일 ToolsVersion 특성

  4. 구성 파일의 기본 도구 버전

  5. 레지스트리의 기본 도구 버전

숫자 1, 2, 3은 다음 속성과 같습니다.

  • MSBuild 작업의 속성 특성

  • msbuild.exe의 /p: 스위치

  • 프로젝트 파일의 속성 태그

명령줄에서 프로젝트를 빌드할 때 /ToolsVersion 값을 지정하지 않으면 Visual Studio 2005 솔루션은 ToolsVersion 값 "2.0"을 사용하여 프로젝트를 빌드하고 Visual Studio 2008 솔루션은 ToolsVersion 값 "3.5"를 사용하여 프로젝트를 빌드합니다.

참고 항목

기타 리소스

MSBuild Concepts

특정 버전의 .NET Framework용으로 빌드