buildbot c ++在Windows上构建:使用devenv.com,vcbuild.exe或msbuild.exe?
-
20-09-2019 - |
题
我的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做。