Created
April 3, 2019 16:29
-
-
Save JamesSkemp/b2f77bca28ffc09dc0efbfe9fd49750e to your computer and use it in GitHub Desktop.
Find Installed .NET Version with LINQPad
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Query Kind="Program"> | |
<Namespace>Microsoft.Win32</Namespace> | |
</Query> | |
// From https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed | |
public static void Main() | |
{ | |
Get45PlusFromRegistry(); | |
} | |
private static void Get45PlusFromRegistry() | |
{ | |
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"; | |
using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) | |
{ | |
if (ndpKey != null && ndpKey.GetValue("Release") != null) { | |
Console.WriteLine(".NET Framework Version: " + CheckFor45PlusVersion((int) ndpKey.GetValue("Release"))); | |
} | |
else { | |
Console.WriteLine(".NET Framework Version 4.5 or later is not detected."); | |
} | |
} | |
// Checking the version using >= enables forward compatibility. | |
string CheckFor45PlusVersion(int releaseKey) | |
{ | |
if (releaseKey >= 461808) | |
return "4.7.2 or later"; | |
if (releaseKey >= 461308) | |
return "4.7.1"; | |
if (releaseKey >= 460798) | |
return "4.7"; | |
if (releaseKey >= 394802) | |
return "4.6.2"; | |
if (releaseKey >= 394254) | |
return "4.6.1"; | |
if (releaseKey >= 393295) | |
return "4.6"; | |
if (releaseKey >= 379893) | |
return "4.5.2"; | |
if (releaseKey >= 378675) | |
return "4.5.1"; | |
if (releaseKey >= 378389) | |
return "4.5"; | |
// This code should never execute. A non-null release key should mean | |
// that 4.5 or later is installed. | |
return "No 4.5 or later version detected"; | |
} | |
} | |
// Define other methods and classes here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment