[msbuild] MSBuild가 c : \ Program Files (x86) \ MSBuild 대신 C : \에서 Microsoft.Cpp.Default.props를 찾는 이유는 무엇입니까? (오류 MSB4019)

msbuild를 실행하여 vc2010 프로젝트를 빌드하면 다음 오류가 발생합니다.

error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Confirm that the path in the <Import> declaration is correct, and that the file exists
on disk.
  • msbuild는 c : \ Program File (x86) \ MSBuild에 있습니다.
  • HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolVersions \ V4.0 VCTargetsPath가 $ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \으로 설정되었습니다.
  • msbuild / verbosity : diag를 좋은 시스템으로 실행할 때 빌드 시작시 환경으로 설정된 MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath가 표시됩니다.
  • MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath를 셸에서 환경 변수로 설정하면 빌드 시작시 환경 으로 표시되지 않습니다.

시도한 수정 사항

  • .net 4.5 제거, .net 4.0 복구
  • 시스템 변수에서 MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath를 설정합니다.

MSBuildExtensionsPath32가 제대로 설정되지 않았고 MSBuildExtensionsPath를 설정해도 도움이되지 않는 것 같습니다.

SET MSBuildExtensionsPath="C:\Program Files\MSBuild"

이 변수의 적절한 설정을 방해하는 아이디어가 있으면 알려주십시오.



답변

MSBuild를 호출하는 명령 줄 도구를 사용하여 cocos2d-x 응용 프로그램을 게시 할 때이 문제가 발생했습니다. Win 7 64 비트, VS2013 express, cocos2d-x 버전 3.3, .NET Framework 4.5가 설치되어 있습니다.

cocos.py publish 명령을 실행하기 전에 다음을 설정하여 문제를 해결했습니다.

SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120


답변

MS에서 규정 한 명령을 따르지 않은 경우 ( Xv의 답변 참조 ) 문제를 해결할 수 있습니다.

MSBuild는를 사용하여 VCTargetsPath기본 cpp 속성을 찾지 만 레지스트리에이 문자열 값이 없기 때문에 불가능합니다.

문자열 값 확인

  • regedit 시작
  • 네비게이터 HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • VCTargetsPath키를 검사하십시오 . 값은 ” $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\” 이어야합니다.

고치다

  • regedit Navigator를 실행하여 HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • 문자열 값 추가 VCTargetsPath
  • 값을 ” $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\“로 설정

참고 : HKLM을 의미합니다 HKEY_LOCAL_MACHINE.


답변

최근에 동일한 문제가 발생했으며 다른 패키지를 다른 순서로 설치 한 후 매우 지저분 해졌습니다. 그런 다음이 저장소를 찾았습니다-https: //github.com/felixrieseberg/windows-build-tools

npm install --global windows-build-tools

대부분의 노드 모듈을 컴파일하는 데 필요한 Python 및 VS Build 도구를 설치합니다. 치료 효과가있었습니다!


답변

Windows 10의 Visual Studio 2017 및 2019 용

여기에있는 많은 답변은 이전 버전의 Visual Studio에 적용됩니다. Visual Studio 2017 Community 버전을 사용하는 경우 저 VCTargetsPath에게 도움이 된 것은 라는 환경 변수를 설정 하고 값을

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets

Visual Studio 2019 Community 버전을 사용하는 경우

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160

여기의 다른 답변은이 변수를로 설정 c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140했지만 Visual Studio 설치에서 MSBuild 폴더에 Microsoft.Cpp라는 폴더가 없다는 것을 알았습니다. 따라서 위의 경로는 Visual Studio 2017의 커뮤니티 버전에 대한 것임을 염두에 두십시오.

또한 Visual Studio 2017 Community 버전을 사용하는 경우 환경 변수의 MSBuild 경로가 올바른 MSBuild 버전을 가리키는 지 확인합니다.

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

Visual Studio 2019 Community 버전을 사용하는 경우

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin


답변

설치 의 Microsoft Visual C ++는 Windows SDK 7.1 2010 서비스 팩 1 컴파일러 업데이트 고정 MSB4019내가 Windows7의 64에 건물 점점 것을 오류를.

해당 업데이트의 읽어보기에 권장 순서는 다음과 같습니다.

  1. Visual Studio 2010
  2. Windows SDK 7.1
  3. Visual Studio 2010 SP1
  4. Windows SDK 7.1 용 Visual C ++ 2010 SP1 컴파일러 업데이트

답변

64 비트 시스템에서 MSBuild는 기본적으로 다음 속성을 사용합니다 (여기서 C :는 SystemDrive).

MSBuildExtensionsPath = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath32 = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath64 = C:\Program Files\MSBuild

그렇지 않은 경우 사용자 지정 타사 재정의 대상이 설치되어 있거나 MSBuild 설치가 손상되었음을 의미합니다.

시도 할 사항 :

  • .NET 설치 복구
  • 최신 Visual Studio 서비스 팩 적용
  • MSBuildExtensionsPath위와 같이 수동으로 설정합니다 ( x8664 비트 컴퓨터 의 부분 참고 ).

답변

Visual Studio 2015 에디션에서이 문제가 발생했습니다. cmake를 사용하여 프로젝트를 생성 할 때이 오류가 나타납니다.

오류 MSB4019 : 가져온 프로젝트 “D : \ Microsoft.Cpp.Default.props”를 찾을 수 없습니다.

문자열을 추가하여 수정했습니다.

VCTargetsPath

가치있는

$ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \ V140

레지스트리 경로

HKLM \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 14.0