Because the packages are not separate by CRM version (for example a package for CRM 2015 and a package for CRM 2016) Microsoft simply updates the NuGet package increasing the version.
This can be an issue in some projects as happened to me some days ago. I was working on a plugin for CRM 2015, my project was targeting .NET 4.5.2 and I installed the current version of CoreAssemblies (8.0.1).
The build was successful but the plugin always returned the exception "Value cannot be null".
I spent some time to understand that the problem was the referenced DLL version, so I removed the NuGet package and I installed the 2015 specific version (7.1.1) using the Package Manager Console:
Install-Package Microsoft.CrmSdk.CoreAssemblies -Version 7.1.1
After the plugin worked like a charm.
As reference these are the current versions and the suggested .NET framework to use:
- CRM 2011: 5.0.18 (.NET 4.0)
- CRM 2013: 6.1.1 (.NET 4.0)
- CRM 2015: 7.1.1 (.NET 4.5.2)
- CRM 2016: 8.0.1 (.NET 4.5.2)