title: What's the difference between using dotnet and MSBuild for building .NET applications?
body: <p>I've just had to do some builds without using Visual Studio for the first time, and clearly there is a gap in my knowledge regarding MSBuild and the build process.</p>
  <p>So, what are the differences between the two build processes below?</p>
  <hr />
  <p>Option 1:</p>
  <pre><code>dotnet build C:\Dev\trunk\Mvc.sln
  </code></pre>
  <p>This option uses &quot;Build Engine version 16.8.3+39993bd9d for .NET&quot; - I presume this means this way can be used for .NET Core as it has no reference to &quot;Framework&quot;?</p>
  <hr />
  <p>Option 2:</p>
  <pre><code>msbuild C:\Dev\trunk\Mvc.sln
  </code></pre>
  <p>This option uses &quot;Build Engine version 16.8.2+25e4d540b for .NET Framework&quot;.</p>
  <hr />
  <p>My assumption was that the &quot;dotnet build&quot; command was just a shorthand way of using MSBuild. However, the logging provided by both is pretty different and they both produce different results.</p>