title: What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix?
body: <p>Building projects with MSBuild 15 and Microsoft.NET.Sdk allows users to specify half a dozen version properties. What is the difference between each of these and what is the right way to use them?</p>
  
  <ul>
  <li>Version</li>
  <li>VersionPrefix</li>
  <li>VersionSuffix</li>
  <li>AssemblyVersion</li>
  <li>FileVersion</li>
  <li>PackageVersion</li>
  </ul>
  
  <p>And to be clear, I'm talking about "properties" as MSBuild properties that are defined in the file (as below)</p>
  
  <pre><code>&lt;PropertyGroup&gt;
     &lt;Version&gt;1.2.0&lt;/Version&gt;
  &lt;/PropertyGroup&gt;
  </code></pre>
  
  <p>...or on command line as <code>msbuild.exe /p:Version=1.2.0</code></p>