Определение установленных версий .NET Framework программным путём
Номера установленных версий .NET Framework хранятся в системном реестре Windows. Для их определения нужно открыть ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP, в подразделах которой находятся сведения о конкретных версиях.
Детальная информация содержится в следующих параметрах.
- Install — флаг установки версии
- Version — полный номер версии
- SP — номер установленного Service Pack
- InstallPath — папка установки
Начиная с .NET Framework 4.0, параметры хранятся во вложенных подразделах Client и Full.
Чтобы проверить, установлена ли версия 4.0 или 4.5, нужно проверить наличие параметра Release в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Если такой параметр есть, значит установлена 4.5, его значением будет номер версии. Чтобы определить, финальная версия 4.5, или нет, значение Release должно быть больше или равно 378389.
Пример кода на C#, выводящего в консоль установленные версии .NET Framework
Код скомпилируется и выполнится на .NET Framework 4.0 и старше. Для запуска требуются права администратора.
public class NetVersionDetector
{
public static void Main()
{
using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
{
foreach (string versionKeyName in ndpKey.GetSubKeyNames())
{
if (versionKeyName.StartsWith("v"))
{
RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
string name = (string)versionKey.GetValue("Version", "");
string sp = versionKey.GetValue("SP", "").ToString();
string install = versionKey.GetValue("Install", "").ToString();
if (install == "")
Console.WriteLine(versionKeyName + " " + name);
else
{
if (sp != "" && install == "1")
{
Console.WriteLine(versionKeyName + " " + name + " SP" + sp);
}
}
if (name != "")
{
continue;
}
foreach (string subKeyName in versionKey.GetSubKeyNames())
{
RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
name = (string)subKey.GetValue("Version", "");
if (name != "")
sp = subKey.GetValue("SP", "").ToString();
install = subKey.GetValue("Install", "").ToString();
if (install == "")
Console.WriteLine(versionKeyName + " " + name);
else
{
if (sp != "" && install == "1")
{
Console.WriteLine(" " + subKeyName + " " + name + " SP" + sp);
}
else if (install == "1")
{
Console.WriteLine(" " + subKeyName + " " + name);
}
}
}
}
}
}
}
}
Данная программа выдаст примерно следующий результат.
v1.1.4322 SP1
v2.0.50727 2.2.30729 SP2
v3.0 3.2.30729 SP2
v3.5 3.5.30729.01 SP1
v4
Client 4.0.30319
Full 4.0.30319
Таблица параметров реестра для точного определения установленной версии .NET Framework
.NET Framework |
Пакет обновления |
Раздел реестра |
Параметр /
Тип / Значение |
4.5 |
Исходный выпуск |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full |
Release / REG_DWORD / Существует |
4 — Client |
Исходный выпуск |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client |
Version / REG_SZ / 4.0.30319.0 |
4 — Full |
Исходный выпуск |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full |
Version / REG_SZ / 4.0.30319.0 |
3.5 |
Исходный выпуск |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 |
SP / REG_DWORD / 0 |
3.5 |
Service Pack 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 |
SP / REG_DWORD / 1 |
3.0 |
Исходный выпуск |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 |
SP / REG_DWORD / 0 |
3.0 |
Service Pack 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 |
SP / REG_DWORD / 1 |
3.0 |
Service Pack 2 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 |
SP / REG_DWORD / 2 |
2.0 |
Исходный выпуск |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
SP / REG_DWORD / 0 |
2.0 |
Service Pack 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
SP / REG_DWORD / 1 |
2.0 |
Service Pack 2 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
SP / REG_DWORD / 2 |
1.1 (в 32-разрядных ОС) |
Исходный выпуск |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
Install / REG_DWORD / 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
SP / REG_DWORD / 0 |
1.1 (в 32-разрядных ОС) |
Service Pack 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
Install / REG_DWORD / 1 |
1.1 (в 64-разрядных ОС) |
Исходный выпуск |
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
Install / REG_DWORD / 1 |
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
SP / REG_DWORD / 0 |
1.1 (в 64-разрядных ОС) |
Service Pack 1 |
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
Install / REG_DWORD / 1 |
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
SP / REG_DWORD / 1 |
1.0 (кроме Windows XP Media Center и Tablet PC) |
Исходный выпуск |
HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} |
Version / REG_SZ / 1.0.3705.0 |
1.0 (кроме Windows XP Media Center и Tablet PC) |
Service Pack 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} |
Version / REG_SZ / 1.0.3705.1 |
1.0 (кроме Windows XP Media Center и Tablet PC) |
Service Pack 2 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} |
Version / REG_SZ / 1.0.3705.2 |
1.0 (кроме Windows XP Media Center и Tablet PC) |
Service Pack 3 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} |
Version / REG_SZ / 1.0.3705.3 |
1.0 (поставляется с Windows XP Media Center 2002/2004 и Tablet PC 2004) |
Service Pack 2 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24} |
Version / REG_SZ / 1.0.3705.2 |
1.0 (поставляется с Windows XP Media Center 2005 и Tablet PC 2005) |
Service Pack 3 |
HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24} |
Version / REG_SZ / 1.0.3705.3 |
Материалы по теме