Mam projekt utworzony w Visual Studio 2013.
Plik projektu ma następujące właściwości:
ToolsVersion = "12.0", PlatformToolset = v120.
Mam zainstalowany program Visual Studio 2013 i Microsoft Build Tools 2015. Ten projekt został pomyślnie skompilowany przy użyciu programu MSBuild 12.0. Przy próbie zbudowania go z MSBuild 14.0 pojawia się błąd
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.
Jak rozumiem, problem polega na tym, że zmienna VCTargetsPath nie jest oceniana. Jeśli przed kompilacją określę zmienną VCTargetsPath (z wartością C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120), problem zostanie rozwiązany.
Jednak takie podejście nie jest zbyt wygodne w przypadku innej ścieżki. Czy można jakoś rozwiązać problem w bardziej optymalny sposób?
Klucz rejestru i jego wartość:
HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))
Odpowiedzi:
Naprawienie tego problemu zajęło mi dwie godziny, ale w końcu skończyłem.
Następujące rozwiązania rozwiązały mój problem:
npm install --global --production windows-build-tools
. Jeśli nie masz npm, polecam go zainstalować, w przeciwnym razie to nie zadziała.C:\Program Files (x86)\MSBuild\14.0
) na swojego użytkownika zamiast administratora. (właściwości> Bezpieczeństwo> Zaawansowane).źródło
npm install -g --production windows-build-tools
.Niedawno ponownie zainstalowałem program Visual Studio 2017 i napotkałem ten problem podczas próby zainstalowania programu „npm java”. Rozwiązanie dla mnie to:
npm config set msvs_version 2017
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
źródło
npm config set msvs_version 2017
ten kod zaoszczędził mi godziny. Dzięki.VCTargets
katalog już zawierałMicrosoft.Cpp.Default.Props
? Mam katalog, ale brakuje tego pliku.Te kroki rozwiązały mój problem:
npm install --global --production windows-build-tools
npm install --save nan
VCTargetsPath
zmienną środowiskową naC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
źródło
VCTargetsPath
to nazwa zmiennej środowiskowej.Dla tych, powyższa odpowiedź nie działa, oto inne możliwe rozwiązanie.
Nawet instalacja narzędzi do kompilacji lub VS 2015 nie działała dla mnie. Więc próbowałem zainstalować poniżej bezpośrednio przez PowerShell (jako administrator)
https://chocolatey.org/packages/visualcpp-build-tools/14.0.25420.1 Polecenie: choco install visualcpp-build-tools --version 14.0.25420.1
Po zainstalowaniu ustaw zmienną środowiskową VCTargetsPath = C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ v140
źródło
Dla osób korzystających z VS 2019:
Edycja (wrzesień 2020 r.): Czasami wymaga końcowego ukośnika odwrotnego (jak wspomniano poniżej bmiller)
źródło
Rozwiązałem to przez:
VCTargetsPath
zmienną środowiskową naC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
źródło
Nie mogłem sprawić, by działało ze wszystkimi sugestiami na tej stronie
Obniżyłem nodejs do 10,15 i działało dobrze
prawdopodobnie nie najlepsza odpowiedź, ale działa
źródło
Próbowałem zainstalować npm i VCTargetsPath, wszystkie nie działają. Ostatecznie rozwiązany po aktualizacji Visual Studio do najnowszej wersji.
źródło
Rozwiązanie rozwiązane przez zainstalowanie programu Visual Studio Express 2015 dla systemu Windows 10 .
źródło
Rozwiązałem problem, ładując rozwiązanie w VS 2019 zamiast dwukrotnego klikania nazwy rozwiązania w Eksploratorze plików.
źródło
Podczas uruchamiania MSBuild poza Visual Studio 2019 (migracja z 2012) miałem tego rodzaju problemy. Rozwiązałem je, uruchamiając ten MSBuild:
(dostosuj go w oparciu o wersję VS i architekturę docelową) zamiast tego:
którego używałem, gdy miałem Visual Studio 2012.
źródło
Upewnij się, że używasz --global z poleceniem, aby móc używać tego pakietu w dowolnym miejscu. To rozwiązuje problem dla mnie
źródło