This is an extract from this MSDN article:
Targeting and running apps for older versions
The .NET Framework versions 2.0, 3.0, and 3.5 are built with the same version of the CLR (CLR 2.0). These versions represent successive layers of a single installation. Each version is built incrementally on top of the earlier versions. It is not possible to run versions 2.0, 3.0, and 3.5 side by side on a computer. When you install version 3.5, you get the 2.0 and 3.0 layers automatically, and apps that were built for versions 2.0, 3.0, and 3.5 can all run on version 3.5. However, the .NET Framework 4 ends this layering approach, so apps built for 2.0. 3.0, or 3.5 will not work on version 4 or later. Starting with the .NET Framework 4, you can use in-process side-by-side hosting to run multiple versions of the CLR in a single process.
From the above paragraph:
It is not possible to run versions 2.0, 3.0, and 3.5 side by side on a computer.
This is surely not true is it? I can definitely have applications using 2.0 and 3.5 run on the same machine.
Starting with the .NET Framework 4, you can use in-process side-by-side hosting to run multiple versions of the CLR in a single process.
This is my biggest problem. Can someone confirm, once and for all, whether in process side by side execution, introduced in .net 4.0, is applicable for all .net processes or just native COM applications using managed COM add ins? Several MSDN articles make a generic statement as seen above, some say its only for COM add ins. So which one is it?