Dlaczego MSBuild wygląda w C: Dla Microsoft.Cpp.Default.rekwizyty zamiast C: Program Files (x86)MSBuild? (błąd MSB4019)

Kiedy uruchamiam msbuild, aby zbudować projekt vc2010, dostaję następujący błąd:

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 ustawia wartość $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4. 0 \
  • podczas uruchamiania msbuild/verbosity: diag jako dobry system pokazuje MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath ustawione jako środowisko na początku build
  • Ustawienie MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath jako zmiennych środowiskowych w powłoce nie powoduje wyświetlania ich jako środowiska na początku budowania

Fixes Attempted

  • odinstalowany. NET 4.5, naprawiony. NET 4.0
  • Ustaw MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath w zmiennych systemowych.

Wygląda na to, że MSBuildExtensionsPath32 nie jest ustawiony poprawnie i ustawienie MSBuildExtensionsPath nie pomaga

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

Proszę dać mi znać, jeśli masz jakieś pomysły, co blokuje prawidłowe ustawienie tej zmiennej.

 91
Author: A-Sharabiani, 2013-04-19

14 answers

Mam ten problem podczas publikowania aplikacji cocos2d-x za pomocą ich narzędzia wiersza poleceń, które wywołuje MSBuild. Używam Win 7 64-bit, VS2013 express, cocos2d-x w wersji 3.3,. NET Framework 4.5 zainstalowany.

I fixed the problem by setting the following before running the cocos.py polecenie publish:

SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
 59
Author: Jeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-24 03:28:13

Dla tych, którzy nie postępowali zgodnie z nakazem MS (patrz odpowiedź Xv ) nadal możesz rozwiązać problem.

MSBuild używa VCTargetsPath do zlokalizowania domyślnych właściwości cpp, ale nie może, ponieważ w rejestrze brakuje tej wartości ciągu.

Sprawdź wartość ciągu

  • Uruchom regedit
  • nawigator do HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • sprawdź VCTargetsPath klucz. Wartość powinna = "$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\"

Aby naprawić

  • Uruchom regedit Nawigator do HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • Dodaj Wartość Ciągu VCTargetsPath
  • ustaw wartość na "$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\"

Uwaga: HKLM oznacza HKEY_LOCAL_MACHINE.

 43
Author: Peter Kahn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:23

Ostatnio miałem ten sam problem i po zainstalowaniu różnych pakietów w innej kolejności robiło się bardzo bałagan. Więc znalazłem ten repo - https://github.com/felixrieseberg/windows-build-tools

npm install --global windows-build-tools

Instaluje narzędzia Python & vs Build, które są wymagane do kompilacji większości modułów węzłów. Zadziałało!

 18
Author: Luke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-03 23:22:52

Instalacja Microsoft Visual C++ 2010 Service Pack 1 Aktualizacja kompilatora dla Windows SDK 7.1 Naprawiono błędy MSB4019, które otrzymywałem na Windows7 x64.

Readme tej aktualizacji stwierdza, że zalecaną kolejnością jest

  1. Visual Studio 2010
  2. Windows SDK 7.1
  3. Visual Studio 2010 SP1
  4. Aktualizacja kompilatora Visual C++ 2010 SP1 Dla Windows SDK 7.1
 12
Author: xverges,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-25 11:22:00

W systemach 64-bitowych MSBuild domyślnie ma następujące właściwości (gdzie C: jest SystemDrive):

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

Jeśli tak nie jest, oznacza to, że albo masz zainstalowane niestandardowe obiekty nadrzędne, albo Twoja instalacja MSBuild jest uszkodzona.

Rzeczy do wypróbowania:

  • Naprawa instalacji. NET
  • Zastosuj najnowszy Visual Studio Service Pack
  • Ustaw MSBuildExtensionsPath ręcznie jak wyżej (zwróć uwagę na Część x86 na maszynach 64-bitowych)
 6
Author: KMoraz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-18 21:30:57

Instalacja Microsoft Visual C++ 2010 Service Pack 1 Aktualizacja kompilatora dla Windows SDK 7.1 zadziałała dla mnie. Jednak doświadczyłem problemów z aktualizacją, ponieważ miałem już zainstalowane VS 2010 I VS 2010 SP1. Jak wspomniano przez Xv powyżej, readme.plik htm zawiera rozwiązania najczęstszych problemów z instalacją w sekcji "Znane problemy". Postępowałbym zgodnie z instrukcjami w readme.htm i uruchom ponownie komputer po każdej próbie rozwiązywania problemów, ponieważ niektóre instaluje zapis do rejestru.

 2
Author: heatfan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:03:05

Miałem taki problem na Visual Studio 2015 edition. Kiedy używałem cmake do generowania projektu pojawił się ten błąd.

Błąd MSB4019: importowany projekt "D:\Microsoft.Cpp.Default.rekwizyty " nie było znaleziono

I fixed it by adding a String

VCTargetsPath

Z wartością

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

W ścieżce rejestru

HKLM \ SOFTWARE \ Microsoft \ MSBuild\ToolsVersions\14.0

 2
Author: Sjs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 11:17:26

Wpisy rejestru dla klucza MSBuild działały dobrze. Ważne jest, aby pamiętać, że należy to zrobić dla gałęzi 64-bitowych lub 32-bitowych w zależności od wersji MSBuild. Nie polecam używania zmiennych środowiskowych, ponieważ może to powodować problemy w różnych wersjach MSBuild.

Ten plik rejestru naprawia, że dla obu przypadków:

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\\'))"
 2
Author: Konstantin Ineshin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-17 16:23:09

MSBuild w niezależnym narzędziu do budowania, które jest często dołączane do innych narzędzi. Może być zainstalowany na komputerze z. NET( starsze wersje), Visual Studio (nowsze wersje), a nawet Team Foundation Build.

MSBuild potrzebuje plików konfiguracyjnych, kompilatorów itp. (zestaw narzędzi), który pasuje do wersji Visual Studio lub TFS, które będą go używać, a także do wersji. net, na podstawie której będzie kompilowany kod źródłowy.

W zależności od sposobu instalacji MSBuild, pliki konfiguracyjne mogą znajdować się w jednej lub kilku z tych ścieżek.

  • 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 \

Jak opisano w innych odpowiedziach, element rejestru i / lub punkt zmiennej środowiskowej musi być umieszczony na ścieżce zestawu narzędzi.

  • Klucz VCTargetsPath pod HKLM\SOFTWARE \ Microsoft \ MSBuild\ToolsVersions\4.0
  • The Zmienna środowiskowa VCTargetsPath.

Czasami operacja, taka jak instalacja Narzędzia, spowoduje niepoprawne ustawienie rejestru i/lub zmiennej środowiskowej. Pozostałe odpowiedzi są wariacjami na ich naprawianie.

Jedyne, co muszę dodać, to zmienna środowiskowa nie działała dla mnie, gdy skończyłem z końcową \

 1
Author: mmesser314,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-22 02:05:21

Przykro mi to mówić...dla mnie nic nie działało..tylko ta metoda mi pomogła.. Ustaw ścieżkę jako C:\Program pliki \ Microsoft Visual Studio\2017 \ BuildTools \ MSBuild\15.0

 1
Author: sowmiya lakshmi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-28 13:09:57

Natknąłem się na ten błąd, pisząc skrypt budowania, który umieszczałby MSBuild na ścieżce % % po rekurencyjnym przekopywaniu się przez C:\Windows\Microsoft.NET folder dla wszystkich znalezionych MSBuild.pliki exe. Ostatnim znalezionym trafieniem był katalog, który został umieszczony na ścieżce. Ponieważ polecenie {[0] } uderzyłoby w folder Framework64 po Framework, otrzymywałem jeden z 64-bitowych Msbuildów umieszczonych na mojej ścieżce. Próbowałem zbudować rozwiązanie Visual Studio 2010 i zmieniłem mój ciąg wyszukiwania z C:\Windows\Microsoft.NET na C:\Windows\Microsoft.NET\Framework tak, aby Chciałbym skończyć z 32bit MSBuild.exe. Teraz mój plik rozwiązania buduje.

 0
Author: jxramos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 05:04:08

Właśnie dodałem VCTargetsPath={c:\...} jako zmienną środowiskową do mojej pracy w Hudson.

 0
Author: user2818782,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-01 10:34:59

Dla zapisu, plik {[0] } może zmodyfikować var env VCTargetsPath i sprawić, że kolejne użycie tego var będzie nieprawidłowe. Miałem ten problem i rozwiązałem go ustawiając VCTargetsPath10 i VCTargetsPath11 na tę samą wartość niż VCTargetsPath.

To powinno być dostosowane do używanej wersji VS.

 0
Author: STM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-29 15:12:50

Widzę to w środowisku VS2017. Mój skrypt build wywołuje najpierw VsDevCmd.bat, A aby rozwiązać ten problem ustawiam zmienną środowiskową VCTargetsPath po VsDevCmd i przed wywołaniem MSBuild:

set VCTargetsPath=%VCIDEInstallDir%VCTargets
 0
Author: Hugh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-12 19:23:39