“C : \ Microsoft.Cpp.Default.props”를 찾을 수 없습니다.


82

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\'))

MSBuild 14.0으로 빌드하려는 시도에서 정확히 어떻게 수행합니까? 먼저 vcvars.bat (또는 빌드 도구 2015의 경우 이와 동등한 항목)를 먼저 호출해야합니다.
stijn

stijn에 동의하고 vcvars.bat를 통해 명령 줄 빌드의 경로 및 환경 변수를 설정하고 작동하는지 확인하십시오. 명령 줄 빌드의 경로 및 환경 변수 설정에 대한 자세한 내용은 다음을 참조하십시오. msdn.microsoft.com/en-us/library/f2ccy3wt.aspx
Zhanglong Wu-MSFT

답변:


60

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

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

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

9
감사합니다. 나는 단지 npm install -g --production windows-build-tools.
Dan Atkinson

@Nic Szer 두 번째 단계를 설명해 주시겠습니까? 이해할 수 없습니다.
HarshitMadhav 2010

@NicSzer 내 경우 소유자 : SYSTEM 어떻게해야합니까?
HarshitMadhav 2010

당신은 당신의 사용자가 소유자가 아닌 시스템이되도록 폴더의 소유자를 변경해야 @HarshitAgrawal
닉 Szerman

@NicSzer 답장 주셔서 감사합니다. 나는 그것을했지만 지금 새로운 오류가 발생합니다. Windows에서 React 네이티브 프로젝트를 실행하려는 것은 이번이 처음입니다. 도움이 필요합니다. stackoverflow의 채팅방에 연결할 수 있습니까?
HarshitMadhav

32

최근에 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. 시스템 관리자로 명령 콘솔 실행

3
npm config set msvs_version 2017이 코드는 내 시간을 절약했습니다. 감사.
canmustu

@Alex VCTargets디렉토리에 이미 포함되어 Microsoft.Cpp.Default.Props있습니까? 디렉토리가 있지만 해당 파일이 없습니다.
starscream_disco_party

예 @starscream_disco_party, Microsoft.Cpp.Default.Props 폴더 내 VCTargets 이미
알렉스

23

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

  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

2
VCTargetsPath는 어디에 있습니까?
HarshitMadhav 19:43에

완벽한 솔루션
Hammad ul Hasan

1
@HarshitAgrawal VCTargetsPath은 환경 변수의 이름입니다.
엠레 Tapcı

세 번째 단계는 제 경우에만 필요했습니다.
Sergei

10

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

빌드 도구 또는 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을 설정합니다.


심지어 환경 변수를 설정하지 않은, Chocolatey 나를 위해 그것을 해결 사용하면, 상자 밖으로 일
메어 가베이에게

9

VS 2019를 사용하는 경우 :

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

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


1
이것은 나를 위해 일했습니다. 경로에 후행 백 슬래시가 필요했습니다. 그렇지 않으면 빌드가 하위 폴더에서 특정 플랫폼 소품을 찾지 못했습니다.
bmiller

1
적절한 VS 버전을 지정했는지 확인해야하지만 저에게도 도움이되었습니다 (제 경우에는 Community- "C : \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ VC \ v160 "
g0rski

5

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

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

1

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

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

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


0

npm 설치 및 VCTargetsPath를 시도했지만 모두 작동하지 않습니다. Visual Studio를 최신 버전으로 업그레이드 한 후 마침내 해결되었습니다.


0

Windows 10 용 Visual Studio Express 2015를 설치하여 문제가 해결되었습니다 .


Express에서 Pro로 이동하면 제 경우에 문제가 발생했습니다. C로 설정 VCTargetsPath 환경 변수 : \의 Program Files (x86) \ MSBuild를 \ Microsoft.Cpp \ 4.0 \ V140
세르게이

0

파일 탐색기에서 솔루션 이름을 두 번 클릭하는 대신 VS 2019에서 솔루션을로드하여 문제를 해결했습니다.


0

Visual Studio 2019 (2012에서 마이그레이션 됨) 외부에서 MSBuild를 실행할 때 이러한 종류의 문제가 발생했습니다. 이 MSBuild를 실행하여 해결했습니다.

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

(VS 버전 및 대상 아키텍처를 기반으로 사용자 지정) 대신 :

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild

Visual Studio 2012를 사용할 때 사용하고있었습니다.


-1

이 패키지를 어디서나 사용할 수 있으려면 명령과 함께 --global을 사용해야합니다. 이것은 나를 위해 문제를 해결합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.