2

我的 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 回答 4

4

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

于 2010-02-11T18:53:25.077 回答
3

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

"Debug^|Win32"
于 2010-06-01T14:20:20.393 回答
3

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 是未来,除非您有部署项目或其他特殊情况,否则请使用它。

于 2010-06-19T03:53:13.883 回答
0

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

于 2010-06-19T00:05:58.660 回答