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\'))
Antworten:
Ich habe zwei Stunden gebraucht, um dieses Problem zu beheben, aber ich war endlich fertig.
Folgendes löste mein Problem:
npm install --global --production windows-build-tools
. Wenn Sie kein npm haben, empfehle ich die Installation, sonst funktioniert dies nicht.C:\Program Files (x86)\MSBuild\14.0
) auf Ihren Benutzer anstelle von admin. (Eigenschaften> Sicherheit> Erweitert).quelle
npm install -g --production windows-build-tools
.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:
npm config set msvs_version 2017
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
quelle
npm config set msvs_version 2017
Dieser Code hat meine Stunden gerettet. Vielen Dank.VCTargets
Verzeichnis bereitsMicrosoft.Cpp.Default.Props
? Ich habe das Verzeichnis, aber diese Datei fehlt.Diese Schritte haben mein Problem gelöst:
npm install --global --production windows-build-tools
npm install --save nan
VCTargetsPath
Umgebungsvariable aufC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
quelle
VCTargetsPath
ist der Name der Umgebungsvariablen.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
quelle
Für diejenigen, die VS 2019 verwenden:
Bearbeiten (Sep 2020): Manchmal ist ein abschließender Backslash erforderlich (wie unten erwähnt).
quelle
Ich habe das gelöst durch:
VCTargetsPath
Umgebungsvariable aufC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
quelle
Ich habe versucht, npm zu installieren und VCTargetsPath, alle funktionieren nicht. Endlich gelöst nach dem Upgrade von Visual Studio auf die neueste Version.
quelle
Behebung durch Installation von Visual Studio Express 2015 für Windows 10 .
quelle
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
quelle
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.
quelle
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:
(Passen Sie es basierend auf Ihrer VS-Version und Zielarchitektur an) anstelle dieser:
das ich verwendet habe, als ich Visual Studio 2012 hatte.
quelle
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
quelle