ToolsVersion 설정 재정의

사용 하 여 프로젝트 파일에 대 한 도구 집합을 선택할 수 있습니다는 /ToolsVersion 전환 (또는 /tv, 줄여서) 하거나 설정 하는 $(ProjectToolsVersion) 속성.다른 프로젝트에서 다른 도구 버전을 사용 하 여 솔루션에 프로젝트를 빌드할 수 있습니다.MSBuild 작업으로 설정 하 여 사용 하는 도구 버전을 재정의할 수도 있습니다는 ToolsVersion 작업 매개 변수입니다.

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

있지만 프로젝트 파일에 지정 된 Toolsversion을 일반적으로 Visual Studio 프로젝트를 구축할 수 있는 /ToolsVersion (또는 /tv) 해당 값을 재정의 하 고 다른 도구 집합으로 프로젝트 간 의존 관계 및 프로젝트의 모든 빌드에 명령줄 스위치.예를 들면 다음과 같습니다.

msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug

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

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

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

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

  1. 라는 파일을 만드는 projectA.proj 다음 코드 포함:

    <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"
    ToolsVersion="4.0">
    
        <Target Name="go" > 
            <Message Text="projectA.proj" />
            <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" />
            <Message Text="MSBuildToolsPath:    $(MSBuildToolsPath)" />
    
            <MSBuild Projects="projectB.proj"
                ToolsVersion="2.0"
                Targets="go" />
        </Target>
    </Project>
    
  2. 라는 다른 파일을 만드는 projectB.proj 다음 코드 포함:

    <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"
    ToolsVersion="4.0">
    
        <Target Name="go">
            <Message Text="projectB.proj" />
            <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" />
            <Message Text="MSBuildToolsPath:    $(MSBuildToolsPath)" />
        </Target>
    </Project>
    
  3. 명령 프롬프트에서 다음 명령을 입력 합니다.

    msbuild projectA.proj /t:go /toolsversion:3.5
    
  4. 다음과 같은 출력이 나타납니다.에 대 한 projectA, /toolsversion:3.5 명령줄에서 설정 보다 우선는 ToolsVersion=4.0 에서 설정 하는 Project 태그.

    ProjectB작업에 의해 호출 됩니다 projectA.해당 작업 ToolsVersion=2.0, 다른 재정의 ToolsVersion 설정에 대 한 projectB.

    Output:
      projectA.proj
      MSBuildToolsVersion: 3.5
      MSBuildToolsPath:    C:\Windows\Microsoft.NET\Framework\v3.5
    
      projectB.proj
      MSBuildToolsVersion: 2.0
      MSBuildToolsPath:    C:\Windows\Microsoft.NET\Framework\v2.0.50727
    

우선 순위

가장 낮은 우선 순위를 결정 하는 데는 ToolsVersion 프로젝트에서 빌드하는 데 사용 됩니다.

  1. ToolsVersion 특성이 있는 경우 프로젝트를 빌드하는 데 사용 되는 MSBuild 작업을 합니다.

  2. /toolsversion (또는 /tv) 있으면 msbuild.exe 명령에 사용 되는 스위치입니다.

  3. ToolsVersion 특성은 프로젝트 프로젝트 파일의 요소입니다.

  4. MSBuild.exe.config 파일의 기본 도구 버전

  5. 레지스트리의 기본 도구 버전자세한 내용은 표준 및 사용자 지정 도구 집합 구성을 참조하십시오.

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

  • MSBuild 작업의 속성 특성

  • msbuild.exe의 /p: 스위치

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

참고 항목

개념

MSBuild 도구 집합(ToolsVersion)

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

기타 리소스

MSBuild 다중 대상 개요

MSBuild 개념