web-dev-qa-db-fra.com

Visual Studio Platform 2015 Toolset = 'v141' introuvable

J'essaie de compiler un projet à l'aide d'OpenFrameworks (une bibliothèque utilisant C++) dans Visual Studio. La construction est définie sur Release et X64 et, dans les propriétés du projet, j'ai défini le jeu d'outils de la plateforme sur Visual Studio 2015 (v140).

Cependant, chaque fois que j'essaie de construire le projet, je reçois la même erreur (entre autres)

Erreur MSB8020 Les outils de génération pour v141 (Platform Toolset = 'v141') sont introuvables. Pour construire à l'aide des outils de compilation v141, installez les outils de construction v141.

Je sais que v141 est issu de la nouvelle version de MSVS 2017 mais je ne souhaite pas effectuer de mise à niveau car la nouvelle version n'est pas compatible avec OpenFrameworks. J'ai essayé de reconstruire le projet à partir de zéro à plusieurs reprises et j'ai également examiné le fichier VCXPROJ et vérifié que tout est défini sur V140 - et c'est le cas. Tous très bizarre.

Il semble que lors de la construction, quelque chose impose une version de v141 mais je n'arrive pas à trouver d'où cela vient. est-ce que quelqu'un a une idée?

30
cy_b0rg

J'ai eu un tel problème. La solution est: ouvrez le menu "Projet" -> Propriétés -> Propriétés de configuration -> Général - et choisissez le jeu d’outils de la plate-forme v140.

18
Alexander Bekman

Vous avez eu la même erreur en essayant de npm install après le clonage d'un projet basé sur un nœud. Il avait une dépendance npm qui nécessitait la compilation de la source C++.

J'avais déjà modifié mon installation de VS2017 pour inclure Individual Components -> VC++ 2017 version 15.7 v14.14 latest v141 tools

mais cela n'a pas aidé.

J'ai appliqué ces commandes successivement

  1. npm install -g node-gyp

  2. npm install --global --production windows-build-tools

Le premier n'a eu aucun effet, mais le second a fait l'affaire et la commande npm install s'est terminée avec succès.

9
fiat

Pour cette erreur, et similaire, pour d'autres plates-formes (par exemple, VS2013), ce problème se produit généralement car vous avez installé une version plus ancienne de VS après avoir installé une version ultérieure. Je remarque que cela affectera tous vos projets Visual Studio C++ et que vous devrez les configurer manuellement pour cibler l'ensemble d'outils spécifique à la version de VS que vous essayez de créer dans le projet.

3
RLH

Cela a été abordé dans les commentaires d’une des réponses, mais cela a fonctionné pour moi. J'avais les outils de génération v140 et v141 installés. Ainsi, lorsque je devais utiliser des outils de génération v140, j'ai défini la variable VCTargetsPath sur le chemin des outils de génération v140. La suppression de cette variable dans mon environnement a finalement résolu ce problème pour moi.

enter image description here

0
Chris Gong