我的BuildBot使用devenv.com运行了3年,以编译Windows上的项目。

现在,devenv.com遇到了64位版本的构建问题:将配置作为“调试| 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 ++项目。对于托管项目(以及使用VS 2010的C ++),请使用MSBUILD。

其他提示

MSBUILD是“最有可能持续的方法”。 vcbuild.exe死了;它的最后一个版本是2008年。如果需要从VS2008或更早地构建VC项目,MSBUILD 4.0仍将使用它。至于devenv.exe - 当然,这只是无头视觉工作室。从功能上讲,它与在VS中击中构建相同。这意味着,这些天,它本质上只是向MSBUILD交出,但有时比msbuild.exe获得的并行性较小。您可能仍然必须使用devenv.exe的主要原因是.vdproj(部署)项目。这些遗产的事情将构建过程硬编码为V。我建议使用基于MSBUILD的WIX或InstallShield之类的替代方案。不久之后,直到所有内容构建为vs都是msbuild。

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

我遇到了相同的问题,并通过驱逐管道字符来解决它:

"Debug^|Win32"

msbuild.exe不(没有?)知道如何构建设置项目。 devenv.exe做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top