web-dev-qa-db-fra.com

MSBuild ne contient pas de valeur pour la propriété "VCTargetsPath"

J'ai récemment installé Visual Studio 11 Developer Preview pour l'essayer et, à présent, mes projets VS 2010 ne s'ouvrent pas. Au lieu de cela, je reçois le message d'erreur suivant:

MSBuild ne contient pas de valeur pour la propriété "VCTargetsPath"

J'ai trouvé quelqu'un qui avait signalé le problème ici sur Connect , et la réponse de Microsoft était la suivante:

Publié par Microsoft le 12/12/2011 à 17h25
Salut Afshin,

Merci pour les commentaires. Le problème rencontré est résolu pour la prochaine version publique de Visual Studio.

Jim Griesmer
Équipe Visual C++

Fantastique. Alors, comment puis-je restaurer VCTargetsPath pour que mes projets fonctionnent à nouveau?

"VCTargetsPath est une propriété d'ensemble d'outils définie dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0."

J'ai parcouru jusqu'à la valeur VCTargetPath dans le registre et elle a la valeur: 

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

Je ne sais pas où aller d'ici. Aucune suggestion?

52
superstatic

Il semble raisonnable que la solution proposée par Gavin Pugh résolve le problème, bien que je ne l'ai pas essayé. J'ai moi aussi rencontré ce problème après la désinstallation de Developer Preview of VS11. Je pense cependant savoir ce qui ne va pas.

Mladen Jankovic était sur la bonne voie. Une des clés de registre (nécessaires) suivantes était manquante sur ma machine:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
    • Nom de la clé: VCTargetsPath
    • Type: REG_SZ
    • Valeur: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\4.0
    • Nom de la clé: VCTargetsPath
    • Type: REG_SZ
    • Valeur: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\

(Vous pouvez modifier les clés de registre dans Windows en tapant enter image description here+ R + regedit + Entrée)

Pour moi, la deuxième valeur que j'ai énumérée ci-dessus était celle qui manquait. Après l'avoir ajouté, j'ai pu travailler à nouveau avec mon projet.

70
Jonathan DeCarlo

Voici la chose qui m'a trompé:

Modifiez la valeur de registre nommée DefaultToolsVersion située dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0 de 2.0 à 4.0. Faites la même chose dans Wow6432Node aussi.

6
Mladen Janković

La méthode d'édition du registre suggérée par "Mladen Jankovic" ne m'a pas fonctionné.

Je viens d'exécuter une réparation sur Visual Studio 2010 (exécutez le fichier setup.exe sur le disque d'installation de VS2010 ou appelez le programme de désinstallation via le Panneau de configuration -> Programmes). Cela a fait l'affaire pour moi.

Vous devez également réexécuter l’installation du SP1.

Pour ce que ça vaut, mes 'add-ins' (y compris Incredibuild) se sont bien comportés après cela. Ils n'ont pas besoin d'être réinstallés ou réparés. L'emplacement de mes paramètres/fenêtre/débogueur a également été conservé.

Apparemment, ce problème ne se présente que si vous désinstallez l’aperçu du développeur de VS11: http://www.gamefromscratch.com/post/2011/12/15/Do-not-remove-Visual-Studio-2011- développeur-preview! .aspx

4
Gavin Pugh

Pour ceux qui sont ici par recherche google:  

Si vous aviez précédemment installé VS 2015 ou une version ultérieure de vs after vs vs1010, puis désinstallé, voici la solution qu'il vous faut. 

Dans le message d'erreur ci-dessous:

Impossible d'évaluer l'expression de la propriété "$ ([MSBuild] :: ValueOrDefault ('$ (VCTargetsPath)' ',' $ (MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))"

14.0 est le numéro de version de VS2015. Malheureusement, le programme de désinstallation de VS2015/2012 oublie l'une de ses clés de registre, ce qui provoque cette erreur lorsque vous revenez à VS2010.

Allez dans start/run/regedit>  

Chercher HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0 (ainsi que 12.0)

Et

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\14.0 (12.0 également)

S'il y a une clé 14.0/12.0 ici, delete it et votre VS2010 fonctionneront de nouveau, espérons-le.

3
Syam S

Ugh j'ai finalement trouvé la réponse à cette question, qui ne m'a d'ailleurs pas donné le même message d'erreur - je reçois:

erreur MSB4019: le projet importé "C:\Microsoft.Cpp.Default.props" est introuvable. Confirmez que le chemin dans la déclaration est correct et que le fichier existe sur le disque.

Pour une raison quelconque, cela fonctionnait bien avec les versions 32 bits, mais pas avec les versions 64 bits.

Quoi qu'il en soit, la solution consiste à copier toutes les clés VCTargetPath* de HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild ToolsVersions\14.0 à HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0. Ils me manquaient.

En fait, je n'ai copié que VCTargetsPath et VCTargestPath14 car la copie est assez fastidieuse. Cela semble suffisant pour VC++ 2015.

1
Timmmm

Si vous utilisez VS 2010 SP1, allez à Panneau de configuration | Désinstallez un programme , Désinstallez/Modifiez le VS 2010 SP1 et choisissez Réappliquer SP1. Cela a fonctionné pour moi.

0
Nick

J'ai eu le même problème et j'ai découvert que la balise de jeu d'outils n'était pas définie dans le nœud du projet.

La définition de la version des outils a résolu le problème pour moi

0
mameen

Je suis arrivé ici lorsque j'essayais de construire un projet c ++ sans les outils de génération de c ++ Visual Studio installés. Ma solution consistait à télécharger le programme d'installation Visual Studio Build Tools à partir de la page downloads sous l'onglet "Outils de Visual Studio 2017", en l'exécutant avec les options "Outils de génération Visual C++" et "Outils de génération .NET Desktop.

0
Jthorpe

J'ai utilisé C:\Windows\SysWOW64\regedit.exe et je suis allé à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5 et dans le dossier de la version 3.5, la version 2.0 était répertoriée dans la version par défaut, donc je l'ai modifiée en 3.5 et tout fonctionne maintenant.

0
Ross Meldrum