With the release of .NET Framework 4.5 last week, there has been several questions regarding the upgrade path as well as what OS is supported. .NET 4.5 is an in-place upgrade and you can read more about it in Scott Hanselman's detailed post here. Hopefully the following points would make the versioning and support issues more clear.
- Windows XP is NOT a supported platform for .NET 4.5; you will get the following error when you try to install 4.5 on XP (screenshot below).
- Like Windows XP, Windows 2003 server is also NOT a supported platform for .NET 4.5. This would be a concern for those companies who are still running 2003 as their server platform. (btw Windows XP official support ends in August 2014, it is still a supported platform in general)
- .NET 4.0 and 4.5 both have the same assembly version V4.0.30319 hence the in-place upgrade which does not require assembly redirection; just in-place update with full backward compatibility.
- While Windows XP and Windows Server 2003 are not supported for .NET Framework 4.5, they remain as supported targeted platforms in VS 2012.
- If you build an application in 4.0 and the target machine has .NET 4.5, due to the assembly versioning in-place upgrade, this just works. Similarly, a 4.5 targeted application would technically work with 4.0, unless you are using any new features in which case the app will fail hence not recommended.
Following figure from Scott Hanselman's detailed post about .NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0 clearly shows the relatioship between CLR and framework versions.
You probably would also want to review the MSDN article on .NET Framework Versions and Dependencies.