There is a lot of mismash of information out there regarding which version of the CLR an assembly will be loaded into so in hope to consolidate some answers to disambiguate the questions that follow in relation to CLR version
When I am targeting version 4 of the .Net Framework and building in VS2010 will I be using clr version 4? What version of the CLR will the assemblies that I reference use if I do not add any config in my app.config file?
Can I force my application to use a different version of the CLR? If yes, how?
When I am targeting version 2 or 3.5 of the .Net Framework and building in VS2010, which clr version will the compiled assemblies be using?
What version of the CLR will the assemblies that I reference use if I do not add any config in my app.config file?
Can I force my application to use a different version of the CLR, (e.g version 4)? If yes, how?
Is it safe to reference v2 assemblies in a new project that targets v4? Why?