4
votes

La génération échoue pour le projet C ++ / CX avec l'ensemble d'outils de la plateforme v141 dans Visual Studio 2019

J'ai essayé de passer à Visual Studio 2019 depuis sa sortie officielle, mais j'ai des problèmes pour créer un projet basé sur C ++ / CX.

Je n'ai pas reciblé le projet, mais il est toujours configuré pour utiliser l'ensemble d'outils de la plate-forme v141, c'est-à-dire Visual Studio 2017 Build Tools.

Pour autant que je sache, j'ai spécifiquement installé les outils de construction requis dans Visual Studio 2019, ce qui devrait être évident ici:

 entrez la description de l'image ici entrez la description de l'image ici

Néanmoins, selon les propriétés du projet, les outils de construction de Visual Studio 2017 ne sont pas installés:

 entrez la description de l'image ici

Et quand je construis le projet, j'obtiens l'erreur suivante:

1> C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160 \ Microsoft.CppBuild.targets (378,5): erreur MSB8020: Les outils de génération pour Visual Studio 2017 (Platform Toolset = 'v141') est introuvable. Pour créer à l'aide des outils de génération v141, veuillez installer les outils de génération Visual Studio 2017. Vous pouvez également mettre à niveau vers les outils Visual Studio actuels en sélectionnant le menu Projet ou en cliquant avec le bouton droit sur la solution, puis en sélectionnant «Recibler la solution».

Est-ce qu'il me manque encore certains composants dans mon installation, ou s'agit-il d'un bogue dans Visual Studio 2019?

MODIFIER Je dois souligner que Visual Studio 2017 est toujours installé sur le même ordinateur.


0 commentaires

3 Réponses :


1
votes

Il s'avère que le projet (Windows Runtime Component) n'a pas été correctement configuré. Dans le fichier .vcxproj, l'élément ApplicationTypeRevision manquait, ce qui est également "évident" (si vous savez ce que vous recherchez ...) en regardant les propriétés du projet ci-dessus, où seul le Le nœud des propriétés de configuration générales est visible et la valeur de Plateforme cible est vide.

Insertion de la ligne suivante dans le fichier .vcxproj immédiatement après par exemple l'élément WindowsTargetPlatformMinVersion devrait faire l'affaire:

<ApplicationTypeRevision>10.0</ApplicationTypeRevision>

Très probablement, il était également nécessaire d'ajouter les C ++ Universal Windows Platform Tools em>. La version v142 a été rendue disponible lors de la tentative de création d'un nouveau projet de plateforme Windows universelle C ++. Pour autant que je sache, ce composant n'était pas autrement visible dans le programme d'installation de Visual Studio? Une fois le composant v142 installé, le composant v141 correspondant était également disponible pour l'installation.


0 commentaires

5
votes

 entrez la description de l'image ici

J'ai eu un problème similaire, mais c'est ce qui me manquait.

Vous trouverez ces options dans l'onglet Workloads du programme d'installation VS à droite sous les détails de l'installation (c'est-à-dire pas sous les composants individuels).


1 commentaires

Merci Ben! Je me tirais les cheveux en essayant de comprendre pourquoi cela continuait à me donner une erreur alors que je pensais que j'avais clairement installé des outils de construction v141.



1
votes

J'ai eu ce même problème pour Visual Studio 2017, même si V141 a été explicitement affiché comme installé. Il s'est avéré que le problème était que VCTargetsPath était défini dans les variables d'environnement système sur "C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ V4.0 \ V140". La suppression ou la désactivation de cette variable a résolu le problème.

Je pense que cette variable a été définie lors d'une installation précédente de Visual Studio 2015. Même après la désinstallation de tous les autres Visual Studios, la variable n'a jamais été supprimée et le problème a persisté.


0 commentaires