error MSB8008: Specified platform toolset (v120) is not installed or invalid.
msbuild로 컴파일할 때 다음과 같은 오류가 발생한다면?
D:\Sources>msbuild ".\filer.vcxproj" /p:Platform=Win32;Configuration=Release /t:Rebuild
Microsoft (R) Build Engine version 4.0.30319.33440
[Microsoft .NET Framework, version 4.0.30319.34003]
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 2013-11-27 오후 1:17:27.
Project "D:\Sources\filer.vcxproj" on node 1 (Rebuild target(s)).
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(518,5): error MSB8008: Specified platform toolset (v120) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.
[D:\Sources\filer.vcxproj] Done Building Project "D:\Sources\filer.vcxproj" (Rebuild target(s)) -- FAILED.
Build FAILED.
해당 머신에 Visual Studio 2013이 설치되어 있지 않기 때문입니다. 만약 설치되어 있는데도 여전히 발생한다면? 다음의 글에서 알려주듯이,
Specified platform toolset (v110) is not installed or invalid:
; http://social.msdn.microsoft.com/Forums/vstudio/en-US/09e51771-c6dd-4049-a73c-622aa3e6b67d/specified-platform-toolset-v110-is-not-installed-or-invalid
VisualStudioVersion 환경 변수가 정의되어 있지 않기 때문입니다. 따라서, msbuild 명령행 빌드를 실행하기 전 다음과 같이 환경 변수를 설정해 주시면 됩니다.
set VisualStudioVersion=12.0
그런데 이런 오류가 발생할 수도 있습니다.
D:\Sources>msbuild ".\Sources\filer.vcxproj" /p:Platform=Win32;Configuration=Release /t:Rebuild
Microsoft (R) Build Engine version 4.0.30319.33440
[Microsoft .NET Framework, version 4.0.30319.34003]
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 2013-11-27 오후 1:33:27.
Project "D:\Sources\filer.vcxproj" on node 1 (Rebuild target(s)).
D:\Sources\filer.vcxproj(29,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Done Building Project "D:\Sources\filer.vcxproj" (Rebuild target(s)) -- FAILED.
이런 때는 VisualStudioVersion 값을 잘못 지정했기 때문입니다. 예를 들어, 해당 PC에는 VS2013이 설치되어 있는데 VisualStudioVersion 값을 11.0으로 설정했기 때문입니다. msbuild가 실행되는 PC에 설치된 Visual Studio 버전을 확인하시고 그에 맞는 VisualStudioVersion 값을 설정하면 이런 문제는 없어집니다. ^^
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]