According to the .NET Blog, .NET Framework 4.5 is an in-place update that replaces .NET Framework 4.0 (rather than a side-by-side installation).
The goal is for .NET 4.5 to be fully backward compatible with applications built for .NET 4.0 (.NET 3.5 and .NET 4.5 will be side-by-side).
One of the first things you’ll notice about .NET 4.5 is the version number of the CLR (4.0.30319) is the same as .NET 4.0; this is the practice used by other in-place updates.
(read more)
In fact, if you compare a system with .NET 4.5 with a system with .NET 4.0 you’ll see that 4.5 is just an update to 4.0:
| Registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full |
| Value | .NET 4.0 | .NET 4.5 |
| Version | 4.0.30319 | 4.5.40805 |
| CBS | 1 | 1 |
| TargetVersion | 4.0.0 | 4.0.0 |
| Install | 1 | 1 |
| Servicing | 0 | 0 |
| Release | | 368485 |
| InstallPath | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ |
One of the major additions to the framework is the support for the Task-based Asynchronous Pattern.
All classes with asynchronous APIs have be augmented with a Task-based asynchronous API.
Task exception handling has also changed in .NET 4.5 to accommodate the new async keywords in C# and VB.
(read more)

.