.Net Framework 4.5 was installed on my machine and on the IIS Application Pool, I set the .NET CLR version to 4.0.
My question is when running .NET code in this IIS
The AppPool's .NET CLR Version is different from the .NET Framework Version.
The .NET CLR Version 4.0 is the CLR base for the following .NET Framework Versions:
So having a .NET CLR Version of 4.0 just means you support the above Frameworks, which will run under their deployed framework version.
Source: https://docs.microsoft.com/en-us/dotnet/standard/clr#clr-versions
Here is a full mapping of CLR to .NET Framework versions, based off this official documentation. https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies#version-information
CLR 1.0
.NET Framework 1.0
CLR 1.1
.NET Framework 1.1
CLR 2.0
.NET Framework 2.0
.NET Framework 3.0
.NET Framework 3.5
CLR 4
.NET Framework 4
.NET Framework 4.5
.NET Framework 4.5.1
.NET Framework 4.5.2
.NET Framework 4.6
.NET Framework 4.6.1
.NET Framework 4.6.2
.NET Framework 4.7
.NET Framework 4.7.1
.NET Framework 4.7.2
.NET Framework 4.8
Follow the below steps to get the .Net Version Used by IIS.
Versions of .Net above 4.0 are being upgraded as in-place and the installed version can be checked in the registry path - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\release or version