Is it guaranteed for two (or more) versions of the .NET Framework to be installed side by side?

.net, c#

Solution

There's a difference between the Framework version and the runtime version. You can have different runtimes operate side-by-side without interfering if your application is properly marked with the expected runtime in its configuration file.

Programs written for a particular runtime (e.g. 1.1, 2.0, 4.0) can run independently against their given framework with no side effects from the other frameworks. That being said, you must modify your config file to ensure that a .NET 2.0 application runs with the .NET 2.0 CLR when the 4.0 CLR is installed on the machine

The CLR's are affected by the version of the Framework installed on the machine. For example, 4.0 and 4.5 both run with the 4.0 CLR and having 4.5 installed introduces some incompatibilities. That being said, these issues are usually very specific and most applications will not be affected by them.

Here's Microsoft's page on compatibility between Framework versions.

Problem

Based on many articles I have read, I came to the conclusion that it is not guaranteed for a .NET Framework to be 100% backward compatible with the previous versions. So my question is: is it guaranteed for two (or more) versions of the .NET Framework to be installed side by side without any problems (is this documented somewhere by Microsoft)? For example, can .NET 1.1 be installed side by side with .NET 4.5, or will I have to re-compile my project to work on .NET 4.5?

Original source

Related problems