command-linemsbuildbuildbotdevenvvcbuild

buildbot C++ build on Windows: use devenv.com, vcbuild.exe, or MSBuild.exe?


My buildbot has been running for 3 years using devenv.com to compile the projects on Windows.

Now devenv.com has troubles to build for 64 bits versions: passing the configuration as "Debug|x64" generates command line errors because of the pipe character. Escaping and enclosing between quotes result into other errors, some because of the spaces in the directory names, some because of strangely understood command line.

I tried both vcbuild.exe, and MSBuild.exe. vcbuild.exe works perfectly: I'd like to stick to it. MSBuild.exe, on the other side, has a completely strange and complicated output that my coworkers feel terrible. But it is touted everywhere as THE way to build.

The question is: which of devenv.com, vcbuild.exe, and MSBuild.exe is the method that is most likely to last in time?


Solution

  • MSBuild (before Visual Studio 2010/.NET 4) doesn't itself build C++ projects. It calls out to vcbuild.exe. So if you are happy not using MSBuild then I would stick to that for the C++ projects. For managed projects (and for C++ using VS 2010) use MSBuild.