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


124

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"

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


6
큰! 손상된 Visual Studio 설치로 인해 발생하는 오류에 대한 또 다른 질문은 각각 선택된 몇 가지 시나리오에서만 작동하는 수백 가지 해결 방법이 있습니다.
Florian Winter

답변:


75

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

이것은 oracledb 노드 패키지를 설치하는 데 도움이되었습니다. 나는 community.oracle.com/docs/DOC-931127의 지침을 따랐 지만 MSB4019 오류가 발생 하여이 답변으로 수정했습니다.
Pedro Otero 2016

1
PowerShell 버전 :[Environment]::SetEnvironmentVariable("VCTargetsPath", "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140", "Machine")
fiat

경로가 'v4.0'으로 끝남을
Alexander

50

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.


12
레지스트리 항목은 이미 저에게 있습니다. 그 이름을 지나치려면 레지스트리의 값으로 설정된 이름으로 환경 변수를 정의해야했습니다.set VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0
elmotec

12
나를 위해 만이 세트와 함께 일이야VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v120
ygaradon

1
@ CMM 사용자 HKLM은 의미 HKEY_LOCAL_MACHINE당신은 확실히 regedit를 그것을해야한다
마이클 존스턴

4
VCTargetsPath는 키가 아니라 문자열 값입니다!
John Smith

5
나에게는 지금이었다set VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
Daniel Gray

26

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

npm install --global windows-build-tools

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


1
다행히 Azure에서는 작동하지 않습니다.
Aleksey Kontsevich

6
나 같은 문제가있는 사람들을 위해. --production옵션이 필요했습니다 . npm install --global --production windows-build-tools node-gyp 설치 지침에 따라 : github.com/nodejs/node-gyp
eliotRosewater

15

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

1
광산에서, VCTargetPath이었다 C : \의 Program Files (x86) \ 마이크로 소프트 비주얼 스튜디오 \ 2017 \ BuildTools \ Common7 \ IDE \ VC \ VCTargets
마두 프라 딥

1
또한 Microsoft Visual Studio\2019\BuildTools유사하거나 유사한 변형 일 수 있으며 BuildTools 및 Community 대신 Professional 및 Enterprise를 사용할 수도 있습니다. vswhere.exe -products * -property installationPath모든 조합을 검색하고 설치된 모든 제품의 위치를 ​​반환합니다.
MSalters

1
'vswhere.exe' is not recognized as an internal or external command, operable program or batch file.
Andrew Koster

13

설치 의 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 컴파일러 업데이트

오 그래. 나는 이것에 대한 해결책을 찾았습니다. 누락 된 레지스트리 키를 추가하십시오. 나는 그것을 게시하고이 순서를 따르기 위해 내 설정 문서를 업데이트 할 것입니다
Peter Kahn

6

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 비트 컴퓨터 의 부분 참고 ).

2
감사합니다.하지만 아직 설정되지 않았습니다. 1) .net 4.5를 복구하고, 2) .net 4.5를 제거하고 4.0을 복구합니다. 환경에서 수동으로 설정하면 작동하지 않습니다
Peter Kahn

5

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

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

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

VCTargetsPath

가치있는

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

레지스트리 경로

HKLM \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 14.0


완료했습니다. cmd를 다시 시작했지만 문제가 해결되지 않았습니다.
Dan

4

다른 도구와 자주 번들로 제공되는 독립 빌드 도구의 MSBuild입니다. .NET (이전 버전), Visual Studio (최신 버전) 또는 Team Foundation Build가 설치된 컴퓨터에 설치되었을 수 있습니다.

MSBuild에는이를 사용할 Visual Studio 또는 TFS 버전과 소스 코드를 컴파일 할 .NET 버전과 일치하는 구성 파일, 컴파일러 등 (도구 집합)이 필요합니다.

MSBuild가 설치된 방법에 따라 구성 파일이 이러한 경로 중 하나 이상에있을 수 있습니다.

  • C : \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \
  • C : \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \
  • C : \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \

다른 답변에서 설명한 것처럼 레지스트리 항목 및 / 또는 환경 변수는 도구 집합 경로를 가리켜 야합니다.

  • HKLM \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 4.0 아래의 VCTargetsPath 키
  • VCTargetsPath 환경 변수입니다.

도구 설치와 같은 작업으로 인해 레지스트리 및 / 또는 환경 변수가 잘못 설정된 경우가 있습니다. 다른 답변은 모두 수정에 대한 변형입니다.

내가 추가해야 할 유일한 것은 후행을 중단했을 때 환경 변수가 작동하지 않았다는 것입니다.


이! 전체 VS2017이 설치되지 않은 빌드 에이전트에 문제가있었습니다. 개별 구성 요소가 아닌 지정된 VC 도구 세트를 사용하여 "워크로드"를 다시 설치했으며 올바르게 설치되었습니다. 사용자 지정 구성 요소 선택 설치 중에 Visual Studio 설치 관리자가 VS2017 아래에 올바른 도구 집합 v141을 배치하지 않은 것으로 의심됩니다.
Lars Pellarin

저에게는 이것이 문제를 해결하는 데 도움이되었습니다. 제가 사용한 스크립트는 잘못된 msbuild.exe를 찾아서 명시 적으로 호출하는 "도움이되는"것입니다.
Scovetta

4

MSBuild 키에 대한 레지스트리 항목이 잘 작동했습니다. 실행하는 MSBuild 버전에 따라 64 비트 또는 32 비트 분기에 대해 수행해야한다는 점을 기억하는 것이 중요합니다. 다른 버전의 MSBuild에서 문제를 일으킬 수 있으므로 환경 변수를 사용하지 않는 것이 좋습니다.

이 레지스트리 파일은 두 경우 모두 수정합니다.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"

3

경로를 다음과 같이 설정하는 것 외에는 다른 어떤 것도 나를 위해 일하지 않았습니다.

C:\Program Files\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0

어떤 경로를 설정해야합니까?
Nageshwar Reddy Pandem

3

편집 : 이것은 이전 버전의 Visual Studio / MSBuild (특히 MSVC2015?)에 적용됩니다. 최신 버전에서는 MSBuild가 Visual Studio Build Tools 2019에 포함되어 있으며 컴파일러는 다른 위치에 있으며 다양한 방식으로 감지됩니다.

이는 설치된 MSBuild 도구 세트와 레지스트리 설정이 일치하지 않기 때문입니다. 다음 중 하나 이상을 수행 한 경우 발생할 수 있습니다.

  • 잘못된 순서로 여러 Visual Studio 버전 설치
  • 하나 이상의 Visual Studio 버전 제거
  • Visual Studio 설치에 수동으로 레지스트리 변경 또는 수정

안전하고 신뢰할 수있는 유일한 해결책은 OS를 다시 설치하는 것입니다. 프로젝트에 빌드하는 데 여러 버전의 Visual Studio가 필요한 경우 가장 오래된 버전을 먼저 설치하세요. . 그런 다음 코드를 수정하여 단일 도구를 사용하여 빌드하지 않으면 곧 다시 같은 혼란에 빠질 것입니다.

이것이 옵션이 아니라면 먼저 https://stackoverflow.com/a/41786593/2279059를 읽으십시오. 를 문제와 다양한 "솔루션"이 실제로 수행하는 작업을 더 잘 이해하십시오. 그런 다음 Visual Studio 버전 및 설정에 따라 다른 답변 또는 변형 중 하나가 결국 도움이 될 수 있습니다.

더 많은 힌트 :


2

설치 의 Microsoft Visual C ++는 Windows SDK 7.1 2010 서비스 팩 1 컴파일러 업데이트 나를 위해 일을. 그러나 VS 2010 및 VS 2010 SP1이 이미 설치되어 있기 때문에 업데이트에 문제가 발생했습니다. Xv에서 언급했듯이 위의 readme.htm 파일에는 "알려진 문제"절에서 가장 일반적인 설치 문제에 대한 솔루션이 포함되어 있습니다. 일부 설치는 레지스트리에 쓰기 때문에 readme.htm의 지침을 따르고 각 문제 해결 시도 후에 컴퓨터를 재부팅합니다.


2

제 경우 VCTargetPath에는 경로가 있는 환경 변수 를 추가했습니다.

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

(프로젝트 솔루션 파일에는 "Microsoft cpp targets"파일에 대한 참조가 있으므로 끝에 '\'가 중요합니다.

또한 Visual Studio 2017부터 MSBUILD는 Visual Studio 내에 함께 제공되므로 다음 PATH variable으로 업데이트해야합니다.

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

VCTargetPathMSBUILD의 PATH변수를 업데이트 하고 빌드하면 오류가 수정되었습니다.


0

발견 된 모든 MSBuild.exe 파일에 대해 C : \ Windows \ Microsoft.NET 폴더를 재귀 적으로 파헤친 후 % PATH %에 MSBuild를 배치하는 빌드 스크립트를 작성하여이 오류가 발생했습니다. 마지막으로 발견 된 적중은 경로에있는 디렉토리입니다. 때문에 dir명령은 충돌 것 Framework64후 폴더를 Framework내 경로에 넣어 64 비트 MSBuilds 중 하나를 얻고 있었다. Visual Studio 2010 솔루션을 빌드하려고 시도 하고 32 비트 MSBuild.exe를 사용하도록 검색 문자열을에서 C:\Windows\Microsoft.NET로 변경했습니다 C:\Windows\Microsoft.NET\Framework. 이제 내 솔루션 파일이 빌드됩니다.


0

방금 VCTargetsPath={c:\...}Hudson 작업에 환경 변수로 추가 했습니다.


0

레코드의 경우 파일 Microsoft.Cpp.Default.props은 env var를 수정하고 VCTargetsPath해당 var의 후속 사용법을 잘못 만들 수 있습니다 . 나는 그 문제가 있었고 설정 VCTargetsPath10VCTargetsPath11동일한 값으로 해결했습니다.VCTargetsPath .

사용중인 VS 버전에 따라 조정해야합니다.


0

VS2017 환경에서 이것을보고 있습니다. 내 빌드 스크립트가 VsDevCmd.bat먼저 호출되고이 문제를 해결하기 위해 MSBuild 호출 VCTargetsPath전후에 환경 변수를 설정했습니다 VsDevCmd.

set VCTargetsPath=%VCIDEInstallDir%VCTargets

0

위의 VS2017 / 2019에 대한 Chris Gong의 답변에 추가합니다 (아직 댓글 권한이 없습니다).

전체 Visual Studio가 아닌 VS 2019 빌드 도구가 설치된 경우 파일 경로가 약간 다릅니다. 그러면 VCTargetsPath는

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

또한 종료 백 슬래시에 유의하십시오-적어도 필자의 경우에는 필요합니다 (TFS2017, VS2019 빌드 도구). PATH 항목에 대한 해당 변경도 있습니다.


0

VS 17 용 MSBuild에서 동일한 문제에 직면했습니다.

다음 단계를 적용하여이 문제를 해결했습니다.

  • 제 경우에는 Microsoft.Cpp.Default.props파일이 위치 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets 했기 때문에 VCTragetsPath레지스트리에 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0값으로 문자열을 만들었습니다.C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets

  • 또한 Jenkins를 관리자로 실행했습니다.

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


0

고정 경로를 설정하는 대신 먼저 빌드 후 명령 줄에서 다음을 시도하십시오.

SET VCTargetsPath=$(VCTargetsPath)

변수 '$ (VCTargetsPath)'는 c # -sdk-projects에 매크로로 표시되지 않지만 여전히 사용할 수있는 C ++ 관련 비주얼 스튜디오 매크로 인 것 같습니다.

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