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이라는 선택적 작업 매개 변수가 제공됩니다.다음 예제에서는이 매개 변수를 사용 하는 방법을 보여 줍니다.
라는 파일을 만드는 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>
라는 다른 파일을 만드는 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>
명령 프롬프트에서 다음 명령을 입력 합니다.
msbuild projectA.proj /t:go /toolsversion:3.5
다음과 같은 출력이 나타납니다.에 대 한 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 프로젝트에서 빌드하는 데 사용 됩니다.
ToolsVersion 특성이 있는 경우 프로젝트를 빌드하는 데 사용 되는 MSBuild 작업을 합니다.
/toolsversion (또는 /tv) 있으면 msbuild.exe 명령에 사용 되는 스위치입니다.
ToolsVersion 특성은 프로젝트 프로젝트 파일의 요소입니다.
MSBuild.exe.config 파일의 기본 도구 버전
레지스트리의 기본 도구 버전자세한 내용은 표준 및 사용자 지정 도구 집합 구성을 참조하십시오.
숫자 1, 2, 3은 다음 속성과 같습니다.
MSBuild 작업의 속성 특성
msbuild.exe의 /p: 스위치
프로젝트 파일의 속성 태그