buildbot C++, сборка под Windows:использовать devenv.com, vcbuild.exe или MSBuild.exe?

StackOverflow https://stackoverflow.com/questions/2245078

Вопрос

Мой билдбот уже 3 года использует devenv.com для компиляции проектов в Windows.

Теперь у devenv.com возникли проблемы со сборкой 64-битных версий:передача конфигурации как «Debug|x64» приводит к ошибкам командной строки из-за символа вертикальной черты.Экранирование и заключение в кавычки приводят к другим ошибкам, некоторые из-за пробелов в именах каталогов, некоторые из-за странного понимания командной строки.

Я пробовал и vcbuild.exe, и MSBuild.exe.vcbuild.exe работает отлично:Я хотел бы придерживаться этого.MSBuild.exe, с другой стороны, выдает совершенно странный и сложный результат, который вызывает у моих коллег ужас.Но это везде рекламируется как ТО способ построить.

Вопрос в том:какой из методов devenv.com, vcbuild.exe и MSBuild.exe, скорее всего, прослужит долго?

Это было полезно?

Решение

MSBUILD (до Visual Studio 2010/.NET 4) сами по себе не создает проекты C ++. Он вызывает vcbuild.exe. Так что, если вы счастливы, не используете MSBuild, я бы придерживался этого для проектов C ++. Для управляемых проектов (и для C ++ с использованием VS 2010) используйте MSBuild.

Другие советы

MSBuild - это метод, который, скорее всего, прослужит долго.VCBuild.exe мертв;последний выпуск был в 2008 году.MSBuild 4.0 по-прежнему будет использовать его, если ему потребуется собрать проект VC из VS2008 или более ранней версии.Что касается devenv.exe — конечно, это просто безголовая Visual Studio.Функционально это то же самое, что и сборка в VS.Это означает, что в наши дни он, по сути, просто передается MSBuild, но иногда с меньшим параллелизмом, чем у msbuild.exe.Основная причина, по которой вам все равно придется использовать devenv.exe, — это проекты .vdproj (развертывание).Эти устаревшие вещи имеют процесс сборки, жестко запрограммированный в VS.Я рекомендую альтернативу, например WiX или Installshield, основанную на MSBuild.Совсем скоро все, что будет построено в VS, станет MSBuild.

Короче говоря, за MSBuild будущее, используйте его, если у вас нет проектов развертывания или других особых обстоятельств.

Дэн

Я столкнулся с той же проблемой и решил ее, когда Windows-Shell-EscapePAPTING TIPE-символ:

"Debug^|Win32"

msbuild.exe нет (нет?) Devenv.exe делает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top