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