Función que obtiene en una lista todas las versiones de .Net Framework instaladas en el equipo en C#.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
public List obtenerVersionesNETFramework() { List listaVersiones = new List(); using (RegistryKey claveVersiones = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\")) { foreach (string claveVersionNETFramework in claveVersiones.GetSubKeyNames()) { if (claveVersionNETFramework.StartsWith("v")) { RegistryKey versionKey = claveVersiones.OpenSubKey(claveVersionNETFramework); string version = (string)versionKey.GetValue("Version", ""); string servicePack = versionKey.GetValue("SP", "").ToString(); string install = versionKey.GetValue("Install", "").ToString(); if (install == "") //si no se obtiene versión lo haremos más adelante listaVersiones.Add(claveVersionNETFramework + " " + version); else { if (servicePack != "" && install == "1") { listaVersiones.Add(claveVersionNETFramework + " " + version + " SP" + servicePack); } } if (version != "") { continue; } foreach (string subKeyName in versionKey.GetSubKeyNames()) { RegistryKey subKey = versionKey.OpenSubKey(subKeyName); version = (string)subKey.GetValue("Version", ""); if (version != "") servicePack = subKey.GetValue("SP", "").ToString(); install = subKey.GetValue("Install", "").ToString(); if (install == "") listaVersiones.Add(claveVersionNETFramework + " " + version); else { if (servicePack != "" && install == "1") { listaVersiones.Add(" " + subKeyName + " " + version + " SP" + servicePack); } else if (install == "1") { listaVersiones.Add(" " + subKeyName + " " + version); } } } } } } return listaVersiones; } |
Ejemplo de uso:
1 2 3 4 5 6 7 8 |
List listaVersiones = new List(); listaVersiones = obtenerVersionesNETFramework(); string versiones = ""; foreach (string version in listaVersiones) { versiones = versiones + ", " + version; } MessageBox.Show (versiones); |