I use Xorax IncrediBuild to build Visual Studio 2013 (or later) solutions and projects, they're mostly .vcxproj
with a bunch of .csproj
ones.
It took me a little bit of digging, but I've learned that:
When IncrediBuild is used with the regular Visual Studio, it uses the Devenv.exe by default.
Since version 5.0,
BuildConsole.exe
supports a new switch:/UseMSBuild
to specifically instruct IncrediBuild to use MSBuild's build engine instead of the default Visual Studio's DevEnv.
So, in case of Visual Studio projects, there are two modes available:
BuildConsole.exe MyProj.vcxproj
which usesDevEnv.exe
BuildConsole.exe MyProj.vcxproj /usemsbuild
which usesMSBuild.exe
I'd like to learn if there are any differences between using the two engines.
I have made some tests and observed that:
IncrediBuild "Initializing..." phase takes slightly longer in case of
DevEnv.exe
.BuildConsole.exe
generates different output, obviously.No (or insignificant) difference in build performance.
In case of building individual C/C++ native projects (.vcxproj
) as well as whole solutions (.sln
), what are advantages and disadvantages of using DevEnv.exe
versus MSBuild.exe
?