137 votes

Pourquoi MSBuild recherche-t-il dans C:\ le fichier Microsoft.Cpp.Default.props au lieu de c : \Program Fichiers (x86) \MSBuild ? ( erreur MSB4019)

Lorsque je lance msbuild pour construire un projet vc2010, j'obtiens l'erreur suivante :

error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file exists 
on disk.
  • msbuild situé c : \Program Fichier (x86) \MSBuild
  • HKLM \SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolVersions\V4.0 VCTargetsPath défini à $(MSBuildExtensionsPath32) \Microsoft.Cpp\v4.0\
  • En exécutant msbuild /verbosity:diag, le système montre que MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath sont définis comme suit Environnement au début de la construction
  • Le fait de définir MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath en tant que variables d'environnement dans le shell ne les fait pas apparaître en tant que Environnement au début de la construction

Tentative de correction

  • Désinstallation de .net 4.5, réparation de .net 4.0
  • Définir MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath dans les variables système.

Il semble que MSBuildExtensionsPath32 ne soit pas défini correctement et que la définition de MSBuildExtensionsPath ne soit pas utile.

SET MSBuildExtensionsPath="C:\Program Files\MSBuild"

Veuillez me faire savoir si vous avez une idée de ce qui bloque le réglage correct de cette variable.

79voto

Jeff Points 781

J'ai eu ce problème en publiant une application cocos2d-x en utilisant leur outil de ligne de commande, qui appelle MSBuild. J'utilise Win 7 64-bit, VS2013 express, cocos2d-x version 3.3, .NET Framework 4.5 installé.

J'ai résolu le problème en définissant les paramètres suivants avant d'exécuter la commande cocos.py publish :

SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120

51voto

Peter Kahn Points 1860

Pour ceux qui n'ont pas suivi l'ordre proscrit par MS (voir La réponse de Xv ), vous pouvez encore résoudre le problème.

MSBuild utilise le VCTargetsPath pour localiser les propriétés cpp par défaut mais ne peut pas le faire parce que le registre n'a pas cette valeur de chaîne.

Vérifier la valeur de la chaîne

  • Lancez regedit
  • Navigateur vers HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • Inspecter VCTargetsPath clé. La valeur doit être = " $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\ "

Pour réparer

  • Lancez le navigateur regedit pour HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • Ajouter une valeur de chaîne VCTargetsPath
  • Définir la valeur sur " $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\ "

Note : HKLM signifie HKEY_LOCAL_MACHINE .

27voto

Luke Points 724

J'ai eu le même problème récemment et après avoir installé différents paquets dans un ordre différent, cela devenait très désordonné. Puis j'ai trouvé ce repo - https://github.com/felixrieseberg/Windows-build-tools

npm install --global windows-build-tools

Il installe les outils Python et VS Build qui sont nécessaires pour compiler la plupart des modules node. Cela a fonctionné à merveille !

23voto

Chris Gong Points 4756

Pour Visual Studio 2017 et 2019 sur Windows 10

Un grand nombre de réponses ici s'appliquent aux anciennes versions de Visual Studio. Ce qui a fonctionné pour moi, si j'utilisais la version communautaire de Visual Studio 2017, était de définir une variable d'environnement appelée VCTargetsPath et lui donner une valeur de

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets

Si vous utilisez la version communautaire de Visual Studio 2019,

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160

D'autres réponses ici fixent cette variable à c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140 mais j'ai remarqué que dans mon installation de Visual Studio, il n'y avait pas de dossier appelé Microsoft.Cpp dans mon dossier MSBuild. Gardez donc cela à l'esprit ainsi que le fait que le chemin ci-dessus est pour la version communautaire de Visual Studio 2017.

Assurez-vous également que le chemin de MSBuild dans vos variables d'environnement pointe vers la bonne version de MSBuild si vous utilisez la version communautaire de Visual Studio 2017,

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

Si vous utilisez la version communautaire de Visual Studio 2019,

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin

14voto

Xv. Points 879

Installation de Mise à jour du compilateur Microsoft Visual C++ 2010 Service Pack 1 pour le SDK Windows 7.1 a fixé le MSB4019 que j'obtenais en construisant sur Windows7 x64.

Le fichier readme de cette mise à jour indique que l'ordre recommandé est le suivant

  1. Visual Studio 2010
  2. SDK Windows 7.1
  3. Visual Studio 2010 SP1
  4. Mise à jour du compilateur Visual C++ 2010 SP1 pour le SDK Windows 7.1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X