[visual-studio] “C : \ Microsoft.Cpp.Default.props”를 찾을 수 없습니다.

Visual Studio, 2013에서 만든 프로젝트가 있습니다.

프로젝트 파일에는 다음과 같은 속성이 있습니다.

ToolsVersion = “12.0”, PlatformToolset = v120.

Visual Studio 2013 및 Microsoft Build Tools 2015가 설치되어 있습니다. 이 프로젝트는 MSBuild 12.0을 사용하여 성공적으로 빌드됩니다. MSBuild 14.0으로 빌드하려고하면 오류가 발생합니다.

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.

내가 이해했듯이 문제는 변수 VCTargetsPath가 평가되지 않는다는 것입니다. 빌드 전에 VCTargetsPath 변수를 지정하면 (값 C : \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120) 문제가 해결됩니다.

그러나이 방법은 경로가 다른 경우에는 그다지 편리하지 않습니다. 어떻게 든 더 최적의 방법으로 문제를 해결할 수 있습니까?

레지스트리 키 및 해당 값 :

HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))



답변

이 문제를 해결하는 데 2 ​​시간이 걸렸지 만 마침내 끝났습니다.

다음은 내 문제를 해결했습니다.

  1. 관리자 권한 명령 프롬프트 (관리자)에서 실행 :
    npm install --global --production windows-build-tools. npm이 없으면 설치하는 것이 좋습니다. 그렇지 않으면 작동하지 않습니다.
  2. 설치 디렉토리 (제 경우에는 C:\Program Files (x86)\MSBuild\14.0)의 소유권 을 관리자 대신 사용자로 변경하십시오. (속성> 보안> 고급).


답변

최근에 Visual Studio 2017을 다시 설치했는데 “npm java”를 설치하는 동안이 문제가 발생했습니다. 나를위한 해결책은 다음과 같습니다.

  1. ms 버전을 2017로 설정합니다. npm config set msvs_version 2017
  2. VCTargetsPath 환경 변수를 다음으로 설정하십시오. C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
  3. 시스템 관리자로 명령 콘솔 실행


답변

이 단계는 내 문제를 해결했습니다.

  1. 운영 npm install --global --production windows-build-tools
  2. 운영 npm install --save nan
  3. VCTargetsPath환경 변수를 다음으로 설정C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140


답변

위의 답변이 작동하지 않는 경우 여기에 또 다른 가능한 해결책이 있습니다.

빌드 도구 또는 VS 2015 설치조차도 작동하지 않았습니다. 그래서 PowerShell을 통해 직접 설치를 시도했습니다 (관리자)

https://chocolatey.org/packages/visualcpp-build-tools/14.0.25420.1
명령 : choco install visualcpp-build-tools –version 14.0.25420.1

이것이 설치되면 환경 변수 VCTargetsPath = C : \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ v140을 설정합니다.


답변

VS 2019를 사용하는 경우 :

set VCTargetsPath = “C : \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160”

편집 (2020 년 9 월) : 때때로 후행 백 슬래시가 필요합니다 (아래에 언급 된 bmiller 참조).


답변

나는 이것을 다음과 같이 해결했다.

  1. VCTargetsPath환경 변수를 다음으로 설정C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
  2. 관리자를 사용하여 빌드


답변

이 페이지의 모든 제안으로 작동하도록 만들 수 없습니다.

nodejs를 10.15로 다운 그레이드했는데 제대로 작동했습니다.

아마도 최선의 대답은 아니지만 작동합니다.