@vesuvius: The relationship between .NET 4.5 and .NET 4.0 is the same as that between .NET 3.0 and .NET 2.0. In both cases installing the "newer" version can break applications which have dependencies on behaviours (bugs/features take your pick of name) which change between the two.

If Exchange 2010 breaks solely due to .NET4.5 (and not due to one of the myriad of other changes on Server 2012), then it clearly has a dependence somewhere on something that changed between the two. That doesn't necessarily equate to the fact that every .NET4.0 app will break similarly any more than if Exchange did work with 4.5 it would guarantee everything else would too.

Any time you apply any kind of update to a system, no matter how minor it seems, there is a potential for things to break. This is why sysadmins spend their life saying "no, we can't just apply that hotfix to every box" to developers, because they're only too aware of how often "unrelated" changes break stuff.

I'm not sure where you get the idea I'm attempting to discredit the idea it breaks, if anything it's exactly the opposite. Every change is a potential breakage. And it doesn't matter what that change is. Different OS? New patch installed? Changed some "totally harmless" registry entry? All represent a potential for breakages. It amazes me how many developers still think that because they compiled against .NET X.x, they can avoid testing on every version of Windows they support running on, with every viable combination of patching (within a reasonable degree, i.e. every OS SP and every runtime SP + whatever amount to "up to date" at the time of testing)