web-dev-qa-db-fra.com

Comment lancer la bonne version de Msbuild

Quand je tape ...

Msbuild<Enter>

... à l'invite de commande, je reçois ...

Microsoft (R) Build Engine Version 2.0.50727.4927
[Microsoft .NET Framework, Version 2.0.50727.4927]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

Tout cela est très bien, sauf que lorsque je l'exécute sur un Visual Studio 2010 .sln fichier, le message d'erreur indique:

MyProject.sln(2): Solution file error MSB5014: File format version is not recognized.  MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.
0 Warning(s)
1 Error(s)

Il semblerait que la version de MSBuild qui est appelée n'est pas capable de comprendre mon fichier de solution.

J'ai pensé que je vérifierais mon chemin et verrais d'où MSBuild est récupéré. Cependant, il semble qu'aucune partie de mon chemin ne pointe vers un emplacement où se trouve MSBuild.

Comment la ligne de commande trouve-t-elle la copie de MSBuild qu'elle utilise et comment puis-je modifier cette version afin que la dernière version soit utilisée?

34
Rory Becker

Il doit être quelque part dans l'environnement PATH. Utilisez "où msbuild" pour déterminer d'où il charge msbuild.

Utilisez le raccourci de Visual Studio Command Prompt (2010) pour initialiser le chemin d'accès et d'autres variables d'environnement pour VS 2010 et MSBuild 4.0.

25
Kyle Alons

J'ai trouvé cette question car ma variable PATH ne contenait pas de référence à MSBuild.exe. Au cas où quelqu'un d'autre rencontrerait ce problème, ma résolution consistait à enregistrer explicitement les variables d'environnement pour les outils Visual Studio à partir de l'invite de commande:

"%VS100COMNTOOLS%"\\vsvars32.bat // VS2010 environment variables
"%VS110COMNTOOLS%"\\vsvars32.bat // VS2012 environment variables
"%VS120COMNTOOLS%"\\vsvars32.bat // VS2013 environment variables

MSBuild.exe est maintenant enregistré dans PATH

where msbuild
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
40
Aesthete

Changez vos variables d'environnement .

Recherchez/définissez votre variable MSBuild chemin sur C:\Windows\Microsoft.NET\Framework\v4.0.30319

Manifestement, le chemin ci-dessus dépendra de votre emplacement d'installation, mais il sera proche sinon exact.

1
Finglas

Pour construire un projet C # 6, cela a fonctionné pour moi dans un fichier batch

if exist "%ProgramFiles(x86)%\MSBuild\14.0\bin" set MSBUILDLOCATION=%ProgramFiles(x86)%\MSBuild\14.0\bin    

if exist "%ProgramFiles%\MSBuild\14.0\bin" set MSBUILDLOCATION=%ProgramFiles%\MSBuild\14.0\bin

"%MSBUILDLOCATION%\msbuild.exe" "path\to\my\project.csproj"

Vous pouvez facilement changer le numéro de version (14.0) ou ajouter des lignes avec plus de numéros de version (12.0 et 4.0 par exemple) si vous souhaitez prendre en charge une gamme de versions.

1
Nate Cook