From the very first time when I was installing SharePoint 2013 Preview; I looked through the list of pre-requisites and knew that it must be using .net framework V4.5.
My next check was the config file and it looked ok as well. To dig into this I had opened IIS and founded that the app pool is showing V4.0.
There starts a point of confusion why IIS think that SharePoint is using V4.0 and not V4.5.
.NET versions are always been confusing. I had that feeling it was only in-place update for V4.5
The .NET Framework can version in two ways.
(1) Major Version – also called side by side installs
Two different major versions can live together on the same machine.
(2) Minor Version – also called “in-place upgrades”
Minor version means the CLR remains the same but new libraries , bug-fixes and/or some other improvements are added to main CLR.
Sadly .NET 4.5 is not a major version and so does not add different side-by-side CLR.
It will eventually use the same .net framework V4.0CLR and include some additional libraries and Bug fixes/some improvements as well. But it does not add new CLR. I believe new CLR should be the upcoming version.
Application build in which Framework | Actually use which CLR Version | IIS App Pool uses which CLR version |
.net framework 2.0/3.0/3.5 | CLR V2.0 | V2.0 |
.net framework 4.0/4.5 | CLR V4.0 | V4.0 |
IIS app pools know about CLR versions, not Framework and compiler versions, those are set by the application.
And that’s why even though SharePoint 2013 uses .net framework 4.5 the IIS detects the correct CLR version and creates App pool with CLRV4.0.
References for this Article :
http://blogs.msdn.com/b/dotnet/archive/2011/09/26/compatibility-of-net-framework-4-5.aspx