代码之家  ›  专栏  ›  技术社区  ›  Didier Trosset

在Windows上构建BubBOT C++:使用DeVv.com、VCuBudid、EXE或MSBuild.exe?

  •  2
  • Didier Trosset  · 技术社区  · 16 年前

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

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

    我尝试了vcbuild.exe和msbuild.exe。vcbuild.exe工作得很好:我想坚持下去。另一方面,msbuild.exe有一个完全奇怪和复杂的输出,我的同事感到很糟糕。但它到处都被吹捧为 这个 建造的方式。

    问题是:在devenv.com、vcbuild.exe和msbuild.exe中,哪一个方法最有可能持续下去?

    4 回复  |  直到 16 年前
        1
  •  4
  •   Sayed Ibrahim Hashimi    16 年前

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

        2
  •  3
  •   dan    16 年前

    msbuild是“最有可能持久”的方法。vcbuild.exe已经死了;它的最后一个版本是2008年。如果需要从VS2008或更早版本构建VC项目,则msbuild 4.0仍将使用它。至于devenv.exe——当然,它只是一个无头的Visual Studio。从功能上讲,它与按“内部版本”与“内部版本”是相同的,这意味着现在,它基本上只是移交给msbuild,但有时并行性会低于msbuild.exe。您可能仍然需要使用devenv.exe的主要原因是.vdproj(部署)项目。这些遗留的东西有一个硬编码到vs.的构建过程,我建议使用一个类似wix或installshield的基于msbuild的替代方法。直到v中的所有内容都是msbuild。

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

    丹

        3
  •  3
  •   Mikael Lind    14 年前

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

    "Debug^|Win32"
    
        4
  •  0
  •   dantje    16 年前

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