Difference between MSBuild and devenv

What is the difference between compiling the projects using MSBuild and devenv ?

1. Developers using
        a. Devenv  ABC.vcproj /Build <Configuration_To_Build>
2. Team Build internally uses:
        a. MSBuild ABC.vcproj

Well it depends on what kind of projects you are trying to build. Heres the explanation..

Devenv use msbuild. But MSBuild does not build Visual C++ projects. If msbuild encounters a solution that contains a VC++ project, it calls VCBuild.  This is the same behavior as inside DevEnv  .

If the projects are using C++, then MSBuild is not called.  Devenv uses MSBuild to process solution files.  If MSBuild sees a VCProj, it calls VCBuild.  If there is a vb.net or C# project, then msbuild handles building the project.

Thanks to Jerel Frauenheim for explaining this with diagram.