title: Relationship between the dotnet cli and the new vs2017 msbuild
body: <p>With the move from <code>project.json</code> to the new <code>csproj</code> format introduced with VS2017, I'm struggling to understand the difference between the <code>dotnet</code> cli and the new <code>msbuild</code> and when to use one over the other.</p>
  
  <p>1) To build a new <code>csproj</code> netstandard library from the command line, should I be calling the <code>dotnet</code> cli (for example <code>dotnet restore</code> <code>dotnet build</code>) or use <code>msbuild</code> (for example <code>msbuild ExampleNetstandard.sln</code>).</p>
  
  <p>2) Also, my understanding is that there are two versions of <code>msbuild</code>, one built on the full framework and another targeting <code>dotnet core</code>. Is this correct? Should I always use the <code>dotnet version</code></p>
  
  <p>3) Is <code>dotnet cli</code> standalone or does it require <code>msbuild</code> to be installed?. For instance when you install the dotnet SDK does this install msbuild as well? If so is this different to the version that is installed with vs2017?</p>