"C: \ Microsoft.Cpp.Default.props" wurde nicht gefunden

81

Ich habe ein Projekt in Visual Studio, 2013 erstellt.

Die Projektdatei hat folgende Eigenschaften:

ToolsVersion = "12.0", PlatformToolset = v120.

Ich habe Visual Studio 2013 und Microsoft Build Tools 2015 installiert. Dieses Projekt wird erfolgreich mit MSBuild 12.0 erstellt. Beim Versuch, es mit MSBuild 14.0 zu erstellen, wird eine Fehlermeldung angezeigt

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. 

Soweit ich weiß, besteht das Problem darin, dass die Variable VCTargetsPath nicht ausgewertet wird. Wenn ich die Variable VCTargetsPath vor dem Build angeben (mit dem Wert C: \ Programme (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120), ist das Problem behoben.

Dieser Ansatz ist jedoch nicht sehr praktisch, wenn der Pfad unterschiedlich ist. Ist es möglich, das Problem irgendwie optimaler zu lösen?

Der Registrierungsschlüssel und sein Wert:

HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))
Serg
quelle
Wie genau machen Sie das beim Versuch, es mit MSBuild 14.0 zu erstellen ? Sie sollten wahrscheinlich zuerst vcvars.bat (oder gleichwertig für Build-Tools 2015)
aufrufen
Stimmen Sie stijn zu, legen Sie die Pfad- und Umgebungsvariablen für Befehlszeilen-Builds über vcvars.bat fest und prüfen Sie, ob dies für Sie funktioniert. Weitere Informationen zum Festlegen der
Pfad-

Antworten:

61

Ich habe zwei Stunden gebraucht, um dieses Problem zu beheben, aber ich war endlich fertig.

Folgendes löste mein Problem:

  1. Führen Sie dies an einer Eingabeaufforderung mit erhöhten Rechten (admin) aus : npm install --global --production windows-build-tools. Wenn Sie kein npm haben, empfehle ich die Installation, sonst funktioniert dies nicht.
  2. Ändern Sie den Eigentümer im Installationsverzeichnis (in meinem Fall C:\Program Files (x86)\MSBuild\14.0) auf Ihren Benutzer anstelle von admin. (Eigenschaften> Sicherheit> Erweitert).
Nic Szerman
quelle
9
Vielen Dank. Ich musste nur (wieder) rennen npm install -g --production windows-build-tools.
Dan Atkinson
@Nic Szer kannst du mir den zweiten Schritt erklären? Ich kann es nicht verstehen.
Harshit Agrawal
@NicSzer in meinem Fall sehe ich Besitzer: SYSTEM was soll ich tun?
Harshit Agrawal
@ HarshitAgrawal Sie müssen ändern, wem der Ordner gehört, so dass Ihr Benutzer der Eigentümer ist, nicht SYSTEM
Nic Szerman
@NicSzer danke für die Antwort. Ich habe das getan, aber jetzt neue Fehler bekommen. Dies ist mein erster Versuch, ein natives Reaktionsprojekt unter Windows auszuführen. Ich brauche etwas Hilfe. Können wir uns im Chatroom von stackoverflow verbinden?
Harshit Agrawal
30

Ich habe kürzlich Visual Studio 2017 neu installiert und bin auf dieses Problem gestoßen, als ich versucht habe, "npm java" zu installieren. Die Lösung für mich ist:

  1. setze ms version auf 2017: npm config set msvs_version 2017
  2. Setzen Sie die Umgebungsvariable VCTargetsPath auf C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
  3. Führen Sie die Befehlskonsole als Systemadministrator aus
Alex
quelle
3
npm config set msvs_version 2017Dieser Code hat meine Stunden gerettet. Vielen Dank.
Canmustu
@Alex enthielt Ihr VCTargetsVerzeichnis bereits Microsoft.Cpp.Default.Props? Ich habe das Verzeichnis, aber diese Datei fehlt.
starscream_disco_party
@starscream_disco_party ja, Microsoft.Cpp.Default.Props ist bereits in meinem VCTargets-Ordner
Alex
22

Diese Schritte haben mein Problem gelöst:

  1. Lauf npm install --global --production windows-build-tools
  2. Lauf npm install --save nan
  3. Setzen Sie die VCTargetsPathUmgebungsvariable aufC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
Emre Tapcı
quelle
2
Wo befindet sich VCTargetsPath?
Harshit Agrawal
Perfekte Lösung
Hammad ul Hasan
1
@ HarshitAgrawal VCTargetsPathist der Name der Umgebungsvariablen.
Emre Tapcı
Der 3. Schritt wird nur in meinem Fall benötigt.
Sergei
10

Für diejenigen, die die obige Antwort nicht funktioniert, ist hier eine andere mögliche Lösung zu betrachten.

Selbst die Installation von Build-Tools oder VS 2015 hat bei mir nicht funktioniert. Also habe ich versucht, unten direkt über PowerShell (als Administrator) zu installieren.

https://chocolatey.org/packages/visualcpp-build-tools/14.0.25420.1 Befehl: choco install visualcpp-build-tools --version 14.0.25420.1

Legen Sie nach der Installation eine Umgebungsvariable VCTargetsPath = C: \ Programme (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ v140 fest

Sorabh Mendiratta
quelle
Mit Chocolatey wurde es für mich gelöst, ich habe nicht einmal die Umgebungsvariable festgelegt, es hat
sofort
9

Für diejenigen, die VS 2019 verwenden:

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

Bearbeiten (Sep 2020): Manchmal ist ein abschließender Backslash erforderlich (wie unten erwähnt).

TheRennen
quelle
1
Das hat bei mir funktioniert. Beachten Sie, dass ich auch einen abschließenden Backslash für den Pfad benötigt habe. Andernfalls konnte der Build nicht nach bestimmten Plattform-Requisiten in einem Unterordner suchen.
Bmiller
Funktionierte auch für mich, obwohl Sie sicherstellen müssen, dass Sie die richtige VS-Version angegeben haben (in meinem Fall war es Community - "C: \ Programme (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ VC \ v160 "
g0rski vor
5

Ich habe das gelöst durch:

  1. Setzen Sie die VCTargetsPathUmgebungsvariable aufC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
  2. Build mit Admin
PytLab
quelle
0

Ich habe versucht, npm zu installieren und VCTargetsPath, alle funktionieren nicht. Endlich gelöst nach dem Upgrade von Visual Studio auf die neueste Version.

PaaSFly
quelle
0

Behebung durch Installation von Visual Studio Express 2015 für Windows 10 .

Patapoom
quelle
Der Wechsel von Express zu Pro verursachte in meinem Fall das Problem. Setzen Sie die Umgebungsvariable VCTargetsPath auf C: \ Programme (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140
Sergei
0

Ich konnte es nicht mit allen Vorschlägen auf dieser Seite zum Laufen bringen

Ich habe nodejs auf 10.15 herabgestuft und es hat gut funktioniert

wahrscheinlich nicht die beste Antwort, aber es funktioniert

phil123456
quelle
0

Ich habe das Problem gelöst, indem ich die Lösung in VS 2019 geladen habe, anstatt im Datei-Explorer auf den Lösungsnamen zu doppelklicken.

gerritvn
quelle
0

Beim Ausführen von MSBuild außerhalb von Visual Studio 2019 (migriert von 2012) hatte ich solche Probleme. Ich habe sie gelöst, indem ich dieses MSBuild ausgeführt habe:

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

(Passen Sie es basierend auf Ihrer VS-Version und Zielarchitektur an) anstelle dieser:

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

das ich verwendet habe, als ich Visual Studio 2012 hatte.

bläulich
quelle
-1

Stellen Sie sicher, dass Sie --global mit dem Befehl verwenden, um dieses Paket überall verwenden zu können. Dies löst das Problem für mich

Kareem Khaleel
quelle