buildbot C ++ для Windows: используйте devenv.com, vcbuild.exe или MSBuild.exe? - PullRequest
2 голосов
/ 11 февраля 2010

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

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

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

Вопрос в том, какой из методов devenv.com, vcbuild.exe и MSBuild.exe наиболее вероятен в течение времени?

Ответы [ 4 ]

4 голосов
/ 11 февраля 2010

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

3 голосов
/ 19 июня 2010

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 - это будущее, используйте его, если у вас нет проектов развертывания или других особых обстоятельств.

Dan

3 голосов
/ 01 июня 2010

Я столкнулся с той же проблемой и решил ее с помощью экранирования оболочки в Windows:

"Debug^|Win32"
0 голосов
/ 19 июня 2010

msbuild.exe не (не?) Знает, как создавать проекты установки. devenv.exe делает.

...