Compatibility is a very important goal of the .NET team at Microsoft. The team always made a great deal to guarantee that newer versions will not break previous functionality. However sometimes this is unavoidable to address security issues, fix bugs or improve performance.
To understand the consequences you have to make a difference between runtime changes and retargeting changes:
- Runtime changes: Changes that occur when a new runtime is placed on a machine and the same binaries are run, but expose different behavior
- Retargeting changes: Changes that occur when an assembly that was targeting .NET FW version x is now set to target version y.
To help you identify possible compatibility issues, Microsoft created the .NET Compatibility Diagnostics, a set of Roslyn based analyzers.
Here is how to use them:
- First you have to choose if you want to check for Runtime changes or for Retargeting changes
- Now you need to select the ‘From .NET Framework version’ and the ‘To .NET Framework version’:
- After making your selection, you’ll get a list of all changes classified by their impact: