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

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).

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

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

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


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).


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

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.


0

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


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


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.


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.


-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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.