Command line buildbot C++;在Windows上生成:是否使用devenv.com、vcbuild.exe或MSBuild.exe?

Command line buildbot C++;在Windows上生成:是否使用devenv.com、vcbuild.exe或MSBuild.exe?,command-line,msbuild,buildbot,devenv,vcbuild,Command Line,Msbuild,Buildbot,Devenv,Vcbuild,我的buildbot已经运行了3年,使用devenv.com在Windows上编译项目 现在devenv.com在构建64位版本时遇到了麻烦:将配置作为“Debug | x64”传递会由于管道字符而生成命令行错误。转义和括在引号之间会导致其他错误,有些是因为目录名中的空格,有些是因为奇怪的命令行 我尝试了vcbuild.exe和MSBuild.exe。vcbuild.exe工作得非常完美:我想坚持使用它。另一方面,MSBuild.exe有一个完全奇怪而复杂的输出,我的同事们觉得很糟糕。但它被到处

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

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

我尝试了vcbuild.exe和MSBuild.exe。vcbuild.exe工作得非常完美:我想坚持使用它。另一方面,MSBuild.exe有一个完全奇怪而复杂的输出,我的同事们觉得很糟糕。但它被到处吹捧为建设的方式


问题是:Devv.com、VCuBudio.EXE和MSBuild.exe中哪一个最有可能持续下去?

< P> MSBuw(VisualStudio 2010/.NET 4之前)本身并不能构建C++项目。它调用vcbuild.exe。因此,如果您不使用MSBuy,那么我会坚持C++项目。对于托管项目(和C++使用VS 2010)使用MSBudio.

我遇到了同样的问题,用Windows shell解决了管壳字符:

"Debug^|Win32"
msbuild.exe不(不知道?)知道如何生成安装项目。devenv.exe执行。MSBuild是“最有可能持续”的方法。VCBuild.exe已死亡;上一次发布是在2008年。如果MSBuild 4.0需要从VS2008或更早版本构建VC项目,则它仍将使用它。至于devenv.exe——当然,它只是无头Visual Studio。从功能上讲,它与在VS中运行build是一样的。这意味着,现在,它基本上只是传递给MSBuild,但有时并行性不如MSBuild.exe。可能仍然必须使用devenv.exe的主要原因是.vdproj(部署)项目。这些遗留的东西有一个硬编码到VS中的构建过程。我推荐一个类似WiX或Installshield的替代方案,它基于MSBuild。在VS中构建的所有内容都是MSBuild之前不久

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


Dan

您是否尝试过使用插入符号(^)转义管道字符,因为这是命令提示符的转义字符。