What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix? : <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>
