I am creating a C # class library and using beta version 2 of Visual Web Developer / Visual C # 2010. I am trying to save information about which version of the .NET library was built. I used to be able to use this:
#if NET_1_0
public const string NETFrameworkVersion = ".NET 1.0";
#elif NET_1_1
public const string NETFrameworkVersion = ".NET 1.1";
#elif NET_2_0
public const string NETFrameworkVersion = ".NET 2.0";
#elif NET_3_5
public const string NETFrameworkVersion = ".NET 3.5";
#else
public const string NETFrameworkVersion = ".NET version unknown";
#endif
So, I decided that I could just add:
#elif NET_4_0
public const string NETFrameworkVersion = ".NET 4.0";
Now in Project-> Properties my target platform is ".NET Framework 4". If I check:
Assembly.GetExecutingAssembly().ImageRuntimeVersion
I see that my runtime version is v4.0.21006 (so I know that .NET 4.0 is installed on my processor). I naturally expect to see my NETFrameworkVersion variable contain ".NET 4.0". Is not. It contains an "unknown version of .NET."
, : NET_4_0 ? ? .NET framework build > 3.5?