Les outils de compilation pour la v120 (Platform Toolset = 'v120') sont introuvables

103

En utilisant Visual Studio 2012 sur Windows 8 x64, cela est dû au déplacement de msbuild vers .net, mais je n'ai pas encore vu comment le résoudre.

4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5):
error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
5>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.
clienthax
la source
1
Conseil CLI: Pour créer une solution avec préférée PlatformToolset, vous pouvez la remplacer comme ceci (VS2013): "\Program Files (x86)\MSBuild\12.0\Bin\MSBuild" .\path\to\MySolution.sln /p:PlatformToolset=v120(si vous êtes dans PowerShell, mettez &avant \Progr..). Pour VS2015, il deviendra "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"et /p:PlatformToolset=v140et ainsi de suite.
Vulcan Raven

Réponses:

73

http://en.wikipedia.org/wiki/Visual_C++

Vous utilisez Visual C ++ 2012 qui est v110. v120 signifie Visual C ++ 2013.

Donc, soit vous modifiez les paramètres du projet pour utiliser l'ensemble d'outils v110, soit vous installez Visual Studio 2013 sur cette machine et utilisez VS2013 pour le compiler.

Lex Li
la source
70
Mais, mais ... j'obtiens cette erreur même si VS 2013 est installé sur ma machine!
Tim Lovell-Smith
5
Avez-vous résolu ce problème? J'ai un problème similaire. Si je construis à partir de TFS Team Build, j'obtiens la même erreur. Cependant, je peux construire correctement à partir de VS 2013 IDE et à partir d'une invite de commande VS 2013.
Ike Starnes
J'ai vérifié la liste des logiciels installés sur les serveurs de construction TFS ici: listofsoftwareontfshostedbuildserver.azurewebsites.net où je suppose que cela fonctionnerait (je soupçonne que cela devrait être construit mais je n'ai pas encore essayé). Je note que VS 2013 n'est pas réellement installé, seulement quelques morceaux.
Remboursé du
6
J'ai installé VS 2013 sur le serveur de construction et j'ai toujours le problème.
Utilisé le 1er
4
Notez que votre solution peut avoir plusieurs projets. Donc, vérifiez les propriétés pour tous en cliquant avec le bouton droit sur le projet (pas la solution) -> Propriétés de configuration-> Général-> Platform Toolset (ceci est sur VS2013)
pixel
84

Si VS2013 est installé et que vous obtenez cette erreur, vous appelez peut-être le mauvais MSBuild. Avec VS2013, Microsoft inclut désormais MSBuild dans le cadre de Visual Studio. Consultez cette publication de blog Visual Studio pour plus de détails.

En particulier, notez le nouvel emplacement des binaires:

Sur les machines 32 bits, ils se trouvent dans: C: \ Program Files \ MSBuild \ 12.0 \ bin

Sur les machines 64 bits, les outils 32 bits seront sous: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin

et les outils 64 bits sous: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin \ amd64

MSBuild %WINDIR%\Microsoft.NET\Framework\ne semble pas reconnaître l'ensemble d'outils de la plate-forme VS2013 (v120).

Kevin Richardson
la source
2
Cette réponse s'est avérée être la bonne réponse pour moi lorsque j'ai rencontré le même problème décrit dans le PO.
Entre le
12
Comment changer le chemin vers MSBuild?
rharrison33
Qu'essayez-vous de faire?
Kevin Richardson
2
@ rharrison33 Lorsque j'ai utilisé une invite de commande VS2013, la version correcte de msbuild a ensuite été utilisée. L'exécution d'une invite de commande VS2012 a utilisé l'emplacement msbuild incorrect. Je ne sais pas vraiment pourquoi VS2013 a installé une invite de commande VS2012, mais c'est quelque chose à surveiller ...
Jim Geurts
1
Construire avec l'ensemble d'outils v120 fonctionne pour moi dans une invite de commande VS2012 lorsque j'utilise C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe.
Kevin Richardson
69

si vous utilisez Visual 2012, cliquez avec le bouton droit sur le nom du projet -> propriétés -> propriétés de configuration -> général -> ensemble d'outils de la plateforme -> Visual Studio 2012 (v110)

Sara
la source
1
Cela a résolu le problème dans mon cas. J'ai essayé d'utiliser VS2013, puis j'ai rencontré ce problème lorsque je suis retourné à VS2012. Notez que vous devez le faire pour chaque projet de la solution.
J. Peterson
Ce message avec une solution et des instructions est si clair et facile à suivre. Dommage que 2012 me donne encore une pile d'erreurs, après avoir corrigé ce problème v110 .. Je peux exécuter exactement le même code C en 2013 sans problèmes, mais 2012 peut encore réussir à trouver des erreurs. 2012 ralentit le codage, c'est pourquoi je n'utilise que 2013 maintenant.
T. Webster
Modification du jeu d'outils de plate-forme et de la version du SDK Windows. Travaillé!
Fırat Esmer
7

Pour compléter les réponses de Kevin et Lex:

Nous avons eu une situation similaire au travail où les développeurs et le serveur de build avaient Visual Studio 2013. Notre solution avait un projet VS 2013 C ++ et était compilée correctement lorsqu'elle était construite sur la machine du développeur ou sur le serveur de build dans l'EDI. Le problème était lors du déclenchement de builds à l'aide de définitions de build TFS. Nous utilisions toujours un ancien modèle de construction (version 11.1) au lieu de 12.0. Heureusement, un simple ajout d'attribut au fichier xaml modèle a résolu le problème. Dans la partie Séquence "Compiler le projet", il y a un nœud xaml qui commence par

mtbwa:MSBuild CommandLineArgument=....

Vous pouvez ajouter un attribut "ToolPath" et le pointer vers le bon chemin du MSBuild.exe que vous souhaitez appeler, en fonction de la réponse de Kevin. Par exemple:

ToolPath="C:\Program Files (x86)\MSBuild\12.0\Bin"
Louis
la source
4

Pour ajouter à la réponse de Louis:

Vous pouvez également utiliser l'attribut ToolVersion="12.0"si vous utilisez Visual Studio 2013 au lieu d'utiliser l' ToolPathattribut. Visite détaillée http://msdn.microsoft.com/en-us/library/dd647548.aspx

Vous n'êtes donc pas obligé d'utiliser un chemin absolu.

kbisang
la source
4

J'ai perdu plus de 4 heures à ce sujet.

J'ai Visual Studio 2017 Enterprise , l'un des projets a l'erreur ci-dessous:

Les outils de compilation pour la v120 (Platform Toolset = 'v120') sont introuvables

Pour résoudre l'erreur ci-dessus, j'ai essayé de tout installer ci-dessous:

Cependant, aucune de ces solutions n'a fonctionné.

Plus tard, installé Visual Studio 2013 Ultimate , puis tout a bien fonctionné.

On dirait que l'ancien Visual Studio est indispensable pour résoudre ce problème.

J'espère que ça aide.

Manohar Reddy Poreddy
la source
3

Lorsqu'un projet VS2013 C ++ est ouvert dans VS2015, et qu'il y a des avertissements concernant «Les outils de construction pour la v120 ... ne peuvent pas être trouvés», je dois simplement modifier le fichier .vcxproj et passer <PlatformToolset>v120</PlatformToolset>à <PlatformToolset>v140</PlatformToolset>, et fermer et rouvrir la solution .

Dennis Schulze
la source
1

Dans VS 2012, j'obtenais "SMB2 ne construira pas: Erreur 1 erreur MSB8020: Les outils de builds pour Visual Studio 2010 (Platform Toolset = 'v100') sont introuvables. Pour créer à l'aide des outils de build v100, cliquez sur le menu Projet ou cliquez avec le bouton droit sur la solution, puis sélectionnez «Mettre à jour les projets VC ++ ...». Installez Visual Studio 2010 pour générer à l'aide des outils de génération de Visual Studio 2010. »

Jetant la prudence au vent, j'ai essayé la suggestion: sélectionné la solution dans l'Explorateur de solutions, puis cliqué sur l'élément de menu "Mettre à jour VC ++". Cela a fait quelques mises à jour, puis a commencé une construction qui a réussi.

L'élément de menu "Mettre à jour VC ++" n'apparaît plus dans le menu de solution.

Tristan Fabrini
la source
1

J'ai eu un problème similaire lorsque j'ai supprimé la mise à jour 5 de la communauté VS 2013 et suis passé à l'édition communautaire VS 2015

et le problème acquis dans les projets Windows Phone 8.1 où il se plaignait de ne pas avoir le bon jeu d'outils msbuild et des émulateurs non installés même s'ils le sont.

Je sais que la source du problème était les paramètres de la communauté VS 2013 qui ont été laissés par cette dernière désinstallation qui ont tout gâché pour moi même si le processus de désinstallation s'est déroulé sans problème depuis le panneau de configuration.

J'ai fait de mon mieux pour supprimer tous les fichiers restants, mais il restait toujours quelque chose.

et ce qui ne l'a résolu que pour moi, c'est une nouvelle installation de Windows 10 x64, puis après avoir installé l'édition communautaire VS 2015 et c'est tout !! plus d'erreurs pour moi et l'émulateur wp8.1 fonctionnait bien aussi !!

dans mon cas, je suis maintenant tout à fait sûr que les paramètres d'installation précédents de Visual Studio ont tout gâché pour moi et parce que je n'avais aucun moyen de trouver et d'essayer d'effacer complètement les fichiers et les paramètres de la communauté VS 2013, j'ai dû en payer le prix et réinstaller mon OS.

vous pourrez peut-être éviter la réinstallation du système d'exploitation si vous pouvez trouver un moyen d'effacer complètement les derniers fichiers d'installation de Visual Studio.

PS: n'essayez cette solution (réinstallation du système d'exploitation) qu'après avoir essayé toutes les méthodes possibles d'abord, puis si rien ne fonctionne et alors seulement ... faites cette solution en dernier recours.

Joseph
la source
Obtenir cette erreur avec une nouvelle installation de VS 2015 Community. Microsoft n'a pas les chemins d'accès corrects pour x64.
Michaelangel007
0

Dans VS2013 pour configurer tous les projets afin de corriger les outils de construction, vous pouvez faire un clic droit sur la solution dans l'explorateur de solutions et choisir «Retarget solution». Cela changera tous les programmes (tout ce que vous cochez avec la case à cocher dans la boîte de dialogue ouverte), donc l'erreur aura disparu.

daniel.bavrin
la source
J'ai essayé ça. N'aide pas dans mon cas avec VS Community 2015.: - /
Michaelangel007
0

Dans mon cas, j'ai double-cliqué sur un fichier sln Visual 2013 et Visual 2012 s'est ouvert (au lieu de Visual 2013). Tentative de compilation avec Visual 2012, un projet dont le Platform Toolset est défini sur «v120» a affiché l'erreur mentionnée ci-dessus. Cependant, en rouvrant le sln avec Visual 2013, le Platform Toolset a été défini sur «Visual Studio 2013 (v120)» - veuillez noter le nom complet cette fois -, a fait le travail pour moi. Le projet se compile bien maintenant.

user1787252
la source
0

J'obtenais la même erreur avec la construction du projet USBView dans VS2015. J'ai supprimé cette erreur en sélectionnant les paramètres de «Platform Toolset» sur «Visual Studio 2015 (v140)» et en cliquant avec le bouton droit sur la solution (dans VS2015) et en sélectionnant «Retarget Solution» et en sélectionnant 10.0.10240.0 dans cette boîte de dialogue.

Il semble qu'il existe également ProjectUpgradeTool de Microsoft qui est supposé convertir des projets plus anciens pour les mettre à niveau vers la version post VS2012 VS, mais je n'ai pas pu localiser cet outil sur ma machine.

Je dois encore corriger une nouvelle erreur de l'éditeur de liens avec l'aide de cela .

zar
la source
0

J'avais un problème similaire. VS 2015 Community (MSBuild 14) créant une application c ++, souhaitait utiliser les outils VS 2010 (v100). Tout cela a donné à msbuild une option de configuration invalide. Étrange.

Alors, revérifiez toutes ces options et paramètres.

Jahmic
la source
0

Si vous utilisez des générateurs de type make comme cmake, JUCE, etc., essayez de définir une cible de version VS correcte (2013, 2015, 2017) et régénérez à nouveau la solution .

DenisKolodin
la source
0

J'étais confronté au même problème lors de la construction de certains projets.

J'ai utilisé l'IDE de Visual Studio 2015, là, cela fonctionnait bien, mais tout en donnant la construction à partir du script PowerShell, il donnait un ensemble d'outils lié "Les outils de compilation pour la v140 (Platform Toolset = 'v140') ne peuvent pas être trouvés." Erreur

Donc, finalement, il était question de pointer vers l'exe MSBUILD incorrect pour le projet respectif.

Auparavant, je pointais vers $ MSBUILD = "C: \ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

Et la construction a réussi lorsque j'ai mis à jour le script pour qu'il pointe vers $ MSBUILD = "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe"

Par conséquent, pour résoudre le problème, assurez-vous d'utiliser le bon MSBUILD.

Sagar Mahewar
la source