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.

2voto

sowmiya lakshmi Points 29

Rien d'autre n'a fonctionné pour moi, sauf de définir le chemin comme :

C:\Program Files\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0

2voto

Arjun Krishna Points 61

Dans mon cas, j'ai ajouté une variable d'environnement VCTargetPath avec le chemin

" C:\Program Fichiers (x86) \Microsoft Visuel Studio \2017\Professional\Common7\IDE\VC\VCTargets\ "

('\' à la fin est crucial, car les fichiers de solution du projet ont une référence au fichier "Microsoft cpp targets".

De plus, à partir de Visual Studio 2017, MSBUILD est intégré à Visual Studio, ce qui signifie que l'option PATH variable doit être mis à jour avec

C:\Program Fichiers (x86) \Microsoft Visuel Studio \2017\Professional\MSBuild\15.0\Bin

Mise à jour de VCTargetPath et de MSBUILD PATH et la construction a corrigé l'erreur.

1voto

Sam Points 31

Au lieu de définir un chemin fixe, essayez d'abord ceci dans votre ligne de commande post-construction :

SET VCTargetsPath=$(VCTargetsPath)

La variable '$(VCTargetsPath)' semble être une macro visual-studio liée à c++ qui n'apparaît pas dans c#-sdk-projects en tant que macro mais qui y est toujours disponible.

0voto

jxramos Points 79

Je suis tombé sur cette erreur en écrivant un script de construction script qui plaçait MSBuild dans le %PATH% après avoir fouillé récursivement dans le C:\Windows\Microsoft.NET pour tout fichier MSBuild.exe trouvé. Le dernier trouvé est le répertoire qui a été mis sur le chemin. Puisque le dir toucherait le Framework64 dossier après Framework J'étais en train de faire mettre un des MSBuilds 64bit sur mon chemin. J'essayais de construire une solution Visual Studio 2010 et j'ai fini par modifier ma chaîne de recherche, qui est passée de C:\Windows\Microsoft.NET a C:\Windows\Microsoft.NET\Framework pour que je me retrouve avec un MSBuild.exe 32bit. Maintenant, mon fichier de solution se construit.

0voto

user2818782 Points 434

Je viens d'ajouter VCTargetsPath={c:\...} comme variable d'environnement pour mon travail à Hudson.

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