buildbot C++ 在 Windows 上构建:使用 devenv.com、vcbuild.exe 还是 MSBuild.exe?

Posted

技术标签:

【中文标题】buildbot C++ 在 Windows 上构建:使用 devenv.com、vcbuild.exe 还是 MSBuild.exe?【英文标题】:buildbot C++ build on Windows: use devenv.com, vcbuild.exe, or MSBuild.exe? 【发布时间】:2010-02-11 14:32:10 【问题描述】:

我的 buildbot 已经运行了 3 年,使用 devenv.com 在 Windows 上编译项目。

现在 devenv.com 在构建 64 位版本时遇到了麻烦:将配置作为“Debug|x64”传递会因为管道字符而产生命令行错误。在引号之间转义和括起来会导致其他错误,有些是因为目录名称中的空格,有些是因为奇怪的命令行理解。

我尝试了 vcbuild.exe 和 MSBuild.exe。 vcbuild.exe 完美运行:我想坚持下去。另一方面,MSBuild.exe 有一个完全奇怪和复杂的输出,我的同事觉得很糟糕。但它到处都被吹捧为 THE 的构建方式。

问题是:devenv.com、vcbuild.exe 和 MSBuild.exe 中哪一个是最有可能持续时间的方法?

【问题讨论】:

您是否尝试过使用插入符号 (^) 转义管道字符,因为这是命令提示符的转义字符。 【参考方案1】:

MSBuild(在 Visual Studio 2010/.NET 4 之前)本身并不构建 C++ 项目。它调用 vcbuild.exe。因此,如果您对不使用 MSBuild 感到高兴,那么对于 C++ 项目,我会坚持使用它。对于托管项目(以及使用 VS 2010 的 C++),请使用 MSBuild。

【讨论】:

【参考方案2】:

MSBuild 是“最有可能持续”的方法。 VCBuild.exe 已死;它的最后一个版本是 2008 年。如果需要从 VS2008 或更早版本构建 VC 项目,MSBuild 4.0 仍将使用它。至于 devenv.exe——当然,它只是无头的 Visual Studio。从功能上讲,它与在 VS 中点击 build 相同。这意味着这些天来,它基本上只是移交给 MSBuild,但有时并行度比 msbuild.exe 所获得的要少。您可能仍必须使用 devenv.exe 的主要原因是 .vdproj(部署)项目。这些遗留的东西有一个硬编码到 VS 中的构建过程。我推荐一个基于 MSBuild 的替代方案,如 WiX 或 Installshield。不久之后,在 VS 中构建的所有内容都是 MSBuild。

简而言之——MSBuild 是未来,除非你有部署项目或其他特殊情况,否则使用它。

【讨论】:

【参考方案3】:

我遇到了同样的问题,并通过 Windows-shell 转义管道字符来解决它:

"Debug^|Win32"

【讨论】:

【参考方案4】:

msbuild.exe 不(不知道?)知道如何构建安装项目。 devenv.exe 可以。

【讨论】:

以上是关于buildbot C++ 在 Windows 上构建:使用 devenv.com、vcbuild.exe 还是 MSBuild.exe?的主要内容,如果未能解决你的问题,请参考以下文章

python (Python)为Buildbot CI框架重新排序字典 - 在此处应用:https://github.com/carlessanagustin/buildbot-bootstrap/b

将 BuildBot 集成到 JIRA

docker--buildbot安装

在 Ubuntu 上构建库,在 Arch 上的项目中使用它 - 不构建

[BuildRelease Management]buildbot

如何使用buildbot ShellCommand在slave中编辑boost的配置文件?