webentwicklung-frage-antwort-db.com.de

MSBuild enthält keinen Wert für die Eigenschaft "VCTargetsPath"

Ich habe vor kurzem die Visual Studio 11 Developer Preview installiert, um es auszuprobieren. Jetzt werden meine VS 2010-Projekte nicht mehr geöffnet. Stattdessen bekomme ich die folgende Fehlermeldung:

MSBuild enthält keinen Wert für die Eigenschaft "VCTargetsPath"

Ich habe jemanden gefunden, der das Problem hier auf Connect gemeldet hat, und die Antwort von Microsoft war:

Gepostet von Microsoft am 02.12.2011 um 17:25 Uhr
Hi Afshin,

Danke für die Rückmeldung. Das Problem, auf das Sie stießen, wurde für die nächste öffentliche Version von Visual Studio behoben.

Jim Griesmer
Visual C++ Team

Fantastisch. Wie kann ich also VCTargetsPath wiederherstellen, damit meine Projekte wieder funktionieren?

"VCTargetsPath ist eine Toolset-Eigenschaft, die in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0 definiert ist."

Ich habe den VCTargetPath-Wert in der Registrierung durchsucht und dieser hat den Wert: 

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

Nicht sicher, wohin von hier aus zu gehen. Irgendwelche Vorschläge?

52
superstatic

Es scheint vernünftig, dass die Lösung, die Gavin Pugh gegeben hat, das Problem beheben würde, obwohl ich es nicht ausprobiert habe. Auch ich bin auf dieses Problem gestoßen, nachdem ich die Entwicklervorschau von VS11 deinstalliert habe. Ich denke, ich weiß, was wirklich falsch ist.

Mladen Jankovic war auf dem richtigen Weg. Auf meinem Computer fehlte einer der beiden folgenden (erforderlichen) Registrierungsschlüssel:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
    • Schlüsselname: VCTargetsPath
    • Typ: REG_SZ
    • Wert: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\4.0
    • Schlüsselname: VCTargetsPath
    • Typ: REG_SZ
    • Wert: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\

(Sie können Registrierungsschlüssel in Windows bearbeiten, indem Sie Folgendes eingeben enter image description here+ R + regedit + Enter)

Für mich war der zweite Wert, den ich oben aufgelistet habe, derjenige, der fehlte. Nachdem ich es hinzugefügt hatte, konnte ich wieder mit meinem Projekt arbeiten.

72

Hier ist das, was mir einen Trick gebracht hat:

Ändern Sie den Registrierungswert DefaultToolsVersion in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0 von 2.0 in 4.0. Machen Sie dasselbe auch in Wow6432Node.

6

Die von "Mladen Jankovic" vorgeschlagene Registrierungsmethode hat für mich nicht funktioniert.

Ich habe gerade eine Reparatur für Visual Studio 2010 durchgeführt (führen Sie die Datei setup.exe auf der VS2010-Installations-CD aus oder rufen Sie die Deinstallation über Systemsteuerung-> Programme auf). Es hat den Trick für mich gemacht.

Sie sollten auch die SP1-Installation erneut ausführen.

Meine "Add-Ins" (einschließlich Incredibuild) verhalten sich danach gut. Sie mussten nicht erneut installiert oder repariert werden. Meine Einstellungen/Fenster/Debugger-Platzierung wurde ebenfalls beibehalten.

Anscheinend tritt dieses Problem nur auf, wenn Sie die Developer Preview von VS11 deinstallieren: http://www.gamefromscratch.com/post/2011/12/15/Do-not-remove-Visual-Studio-2011- Entwickler-Vorschau! .aspx

4
Gavin Pugh

Für diejenigen, die durch Google-Suche hier sind:  

Wenn Sie zuvor VS 2015 oder eine neuere Version von vs after vs2010 installiert und dann deinstalliert haben, ist hier die Lösung für Sie. 

In der Fehlermeldung unten:

Der Eigenschaftsausdruck kann nicht ausgewertet werden "$ ([MSBuild] :: ValueOrDefault ('$ (VCTargetsPath)', '$ (MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140 \'))"

14.0 ist die Versionsnummer von VS2015. Leider vergisst das Deinstallationsprogramm von VS2015/2012 einen seiner Registrierungsschlüssel, der dann zu diesem Fehler führt, wenn Sie zu VS2010 zurückkehren.

Gehe zu Start/Ausführen/Regedit>  

Suchen HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0 (auch 12.0)

Und

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\14.0 (auch 12.0)

Wenn hier ein Schlüssel 14.0/12.0 vorhanden ist, werden delete it und Ihr VS2010 hoffentlich wieder funktionieren.

3
Syam S

Ich fand schließlich die Antwort darauf, die mir übrigens nicht die gleiche Fehlermeldung gab - ich bekomme:

fehler MSB4019: Das importierte Projekt "C:\Microsoft.Cpp.Default.props" wurde nicht gefunden. Stellen Sie sicher, dass der Pfad in der Deklaration korrekt ist und die Datei auf der Festplatte vorhanden ist.

Aus irgendeinem Grund funktionierte es gut mit 32-Bit-Builds, aber nicht mit 64-Bit-Builds.

Die Lösung besteht jedoch darin, alle VCTargetPath*-Schlüssel von HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild ToolsVersions\14.0 nach HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0 zu kopieren. Sie wurden für mich vermisst.

Eigentlich habe ich nur VCTargetsPath und VCTargestPath14 kopiert, da das Kopieren ziemlich langweilig ist. Scheint für VC++ 2015 ausreichend zu sein.

1
Timmmm

Wenn Sie mit VS 2010 SP1 arbeiten, gehen Sie zu Systemsteuerung | Deinstallieren Sie ein Programm , Deinstallieren/Ändern Sie das VS 2010 SP1 und wählen Sie erneut SP1 anwenden. Es hat für mich funktioniert.

0
Nick

Ich hatte das gleiche Problem und fand heraus, dass das Toolset-Tag nicht im Projektknoten festgelegt wurde

Das Einstellen der Werkzeugversion löste es für mich

0
mameen

Ich bin hierher gekommen, als ich versuchte, ein C++ - Projekt zu erstellen, ohne dass die Build-Tools für C++ Visual Studio installiert waren. Meine Lösung bestand darin, das Installationsprogramm für Visual Studio Build Tools von der downloads-Seite unter der Registerkarte "Tools für Visual Studio 2017" herunterzuladen und das Installationsprogramm mit den Optionen "Visual C++ Build Tools" und ".NET Desktop Build Tools" auszuführen.

0
Jthorpe

Ich benutzte C:\Windows\SysWOW64\regedit.exe und ging zu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5. Im Ordner für Version 3.5 war 2.0 in der defaulttoolsversion gelistet, also habe ich das zu 3.5 geändert und alles funktioniert jetzt.

0
Ross Meldrum