Подтвердить что ты не робот

Как запустить правильную версию Msbuild

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

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, которую она использует, и как я могу изменить эту версию, чтобы использовать последнюю версию?

4b9b3361

Ответ 1

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

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

Ответ 2

Я нашел этот вопрос, поскольку моя переменная 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

Ответ 3

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

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

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

Ответ 4

Для создания проекта С# 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), если вы хотите поддерживать ряд версий.