Как запустить правильную версию Msbuild - PullRequest
33 голосов
/ 25 апреля 2010

Когда я печатаю ...

Msbuild<Enter>

... в командной строке я получаю ...

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.

Это все очень хорошо, за исключением того, что при запуске этого файла Visual Studio 2010 .sln появляется сообщение об ошибке:

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)

Может показаться, что вызываемая версия MSBuild не способна понять мой файл решения.

Я подумал, что проверю свой путь и посмотрю, откуда берется MSBuild. Однако, похоже, что ни одна часть моего пути не указывает на место, где находится MSBuild.

Как командная строка находит копию MSBuild, которую она использует, и как я могу изменить эту версию, чтобы использовать последнюю версию?

Ответы [ 4 ]

38 голосов
/ 12 сентября 2012

Я нашел этот вопрос, так как моя переменная PATH не содержала ссылку на MSBuild.exe.В случае, если у кого-то еще возникла эта проблема, я решил явно прописать переменные среды для инструментов Visual Studio из командной строки:

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

MSBuild.exe теперь зарегистрировано в PATH

where msbuild
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
24 голосов
/ 25 апреля 2010

Должно быть где-то в среде PATH. Используйте 'where msbuild', чтобы определить, откуда он загружает msbuild.

Используйте ярлык командной строки Visual Studio (2010) для инициализации пути и других переменных среды для VS 2010 и MSBuild 4.0.

2 голосов
/ 25 апреля 2010

Измените переменные окружения .

Найдите / установите вашу переменную MSBuild path равной C:\Windows\Microsoft.NET\Framework\v4.0.30319

Очевидно, что указанный выше путь будет зависеть от места установки, но он будет близким, если не точным.

1 голос
/ 27 февраля 2016

Для создания проекта C # 6 это работало для меня в командном файле

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"

Вы можете легко изменить номер версии (14.0) или добавить строки с большим количеством номеров версий (например, 12.0 и 4.0).) если вы хотите поддерживать диапазон версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...