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.

0voto

STM Points 486

Pour mémoire, le dossier Microsoft.Cpp.Default.props peut modifier la var. env. VCTargetsPath et rendre les utilisations ultérieures de cette var incorrectes. J'ai eu ce problème et je l'ai résolu en fixant le paramètre VCTargetsPath10 y VCTargetsPath11 à la même valeur que VCTargetsPath .

Il convient de l'adapter en fonction de la version VS que vous utilisez.

0voto

user2848327 Points 31

Je constate ce phénomène dans un environnement VS2017. Mon script de construction appelle VsDevCmd.bat d'abord, et pour résoudre ce problème, j'ai défini le paramètre VCTargetsPath après la variable d'environnement VsDevCmd et avant d'appeler MSBuild :

set VCTargetsPath=%VCIDEInstallDir%VCTargets

0voto

Lars V Points 36

Ajout à la réponse de Chris Gong sur VS2017/2019 ci-dessus (je n'ai pas encore l'autorisation de commenter).

Si les outils de construction VS 2019 sont installés au lieu de Visual Studio complet, les chemins de fichier sont légèrement différents. VCTargetsPath devrait alors être

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

Notez également la barre oblique inversée de fin - nécessaire, du moins dans mon cas (TFS2017, outils de construction VS2019). Changement correspondant à l'entrée PATH également.

0voto

Hemant Points 1

J'ai rencontré le même problème avec MSBuild pour VS 17.

J'ai résolu ce problème en appliquant les étapes suivantes :

  • Dans mon cas, le Microsoft.Cpp.Default.props était situé à C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets J'ai donc créé VCTragetsPath dans le registre sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0 avec valeur C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets

  • J'ai également fait en sorte que mon Jenkins soit exécuté en tant qu'utilisateur admin.

Cela a résolu mon problème.

0voto

sauravjoshi23 Points 380

J'ai désinstallé VSCode car j'avais fait une erreur lors de l'installation. Il y a un an, j'avais installé une autre version et récemment une autre. Donc après avoir tout désinstallé, j'ai recommencé à zéro. J'ai téléchargé la dernière version de VSCode et les outils de construction. Ensuite, tout a bien fonctionné.

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