Как узнать версию

Проблемы

Определяем установленную версию .NET Framework на компьютере

Практически все представленные ниже способы не требуют использования дополнительного программного обеспечения для определения версии необходимой библиотеки, но мы не можем не отметить сторонние решения, которые могут быть полезны пользователям разных категорий. Поэтому мы предлагаем вам сначала ознакомиться со всеми вариантами, а уже потом выбирать тот, который вам понравится.

Способ 1: ASoft .NET Version Detector

О стороннем программном обеспечении мы уже упоминали выше, поэтому давайте сразу с этим разберемся. В качестве дополнительного решения мы будем использовать ASoft .NET Version Detector — бесплатное программное обеспечение для определения версий .NET Framework, установленных на компьютере. Вся задача выполняется всего в несколько кликов:

  1. Перейдите по ссылке выше и нажмите соответствующую кнопку на веб-сайте, чтобы начать загрузку ASoft .NET Version Detector.Загрузите ASoft NET Version Detector с официального сайта
  2. Когда загрузка завершится, запустите программу из архива.Запуск ASoft NET Version Detector из архива
  3. Подтвердите условия лицензионного соглашения.
  4. В отдельных столбцах будут перечислены все существующие версии рассматриваемого компонента и источники, из которых они были получены.
  5. Если вам нужно скачать какой-либо из них, нажмите на данную кнопку.Загружает недостающие компоненты с помощью программы ASoft NET Version Detector

Хотя ASoft .NET Version Detector является бесплатным и удобным программным обеспечением, не все пользователи имеют желание или возможность его скачивать. В таких случаях мы рекомендуем использовать стандартные средства операционной системы.

Способ 2: Раздел «Программы и компоненты»

Практически каждый пользователь операционной системы Windows хотя бы раз сталкивался с разделом «Программы и компоненты». Обычно туда заходят, чтобы удалить какой-нибудь софт или проверить последние установленные обновления. На этот раз мы используем эту информацию, чтобы получить информацию о версии .NET Framework.

  1. откройте «Пуск» и перейдите в «Панель управления».Перейдите в панель управления Windows, чтобы найти версию NET Framework
  2. Среди всех иконок вы найдете «Программы и компоненты». Дважды щелкните по нему, чтобы пойти.откройте «Программы и компоненты», чтобы найти версию .NET Framework
  3. Прокрутите список вниз и найдите NET.Framework. Версия указана в конце строки.

Если вы вдруг обнаружите, что строк больше одной и указаны разные версии, это означает, что на этом компьютере установлен весь список сборок и добавлены все файлы этих библиотек.

Способ 3: Редактор реестра

Значения большинства системных параметров операционной системы хранятся в редакторе реестра в виде отдельных файлов определенных форматов. Пользователи, уже сталкивавшиеся с этим меню, знают, что найти там нужную информацию, не пользуясь специальными инструкциями, достаточно сложно. Это касается и определения того, о какой версии библиотеки идет речь. Поэтому мы предлагаем вам ознакомиться со следующим руководством.

  1. откройте инструмент «Выполнить», удерживая комбинацию Win + R. Введите в поле regedit и нажмите клавишу Enter или виртуальную кнопку «ОК».Перейдите в редактор реестра, чтобы определить версии NET Framework
  2. Перейдите по пути HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDP, где вы найдете отдельные каталоги версий .NET Framework.Перейдите к папкам .NET Framework, чтобы найти установленные версии
  3. Выберите один из них и разверните каталог «Клиент» или «Полный». Найдите там параметр установки. Если значение равно 1, эта версия установлена ​​на компьютере. 0 указывает на отсутствие компонента.Определение установленных версий .NET Framework через редактор реестра

Далее мы вернемся к редактору реестра и покажем, как можно еще проще найти установленную версию компонента, даже не открывая это меню.

Обнаружение .NET Framework 4.5 и более поздних версий

Версия .NET Framework (4.5 и более поздних версий), установленная на вашем компьютере, указана в реестре по адресу HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4Full. Если полный подраздел отсутствует, .NET Framework 4.5 или более поздней версии не установлена.

Примечание

NET Framework Setup в пути реестра не начинается с точки.

Значение Release REG_DWORD в реестре представляет установленную версию .NET Framework.

.NET Framework 4.5 Все версии операционной системы Windows: 378389
.NET Framework 4.5.1 Windows 8.1 и Windows Server 2012 R2: 378675
Все остальные версии операционной системы Windows: 378758
.NET Framework 4.5.2 Все версии операционной системы Windows: 379893
.NET Framework 4.6 Windows 10: 393295
Все остальные версии операционной системы Windows: 393297
.NET Framework 4.6.1 Ноябрьское обновление Windows 10: 394254
Все остальные версии операционной системы Windows (включая Windows 10): 394271
.NET Framework 4.6.2 В Windows 10 и Windows Server 2016 Anniversary Update: 394802
Все остальные версии операционной системы Windows (включая другие операционные системы Windows 10): 394806
.NET Framework 4.7 Обновление для разработчиков Windows 10: 460798
Все остальные версии операционной системы Windows (включая другие операционные системы Windows 10): 460805
.NET Framework 4.7.1 Обновление Windows 10 Fall Creators и версия Windows Server 1709: 461308
Все остальные версии операционной системы Windows (включая другие операционные системы Windows 10): 461310
.NET Framework 4.7.2 Обновление Windows 10 за апрель 2018 г и версия Windows Server 1803: 461808
Все остальные операционные системы, кроме Windows 10 April 2018 Update и Windows Server версии 1803: 461814
.NET Framework 4.8 Обновление Windows 10 за май 2019 г и обновление Windows 10 за ноябрь 2019 г.: 528040
Обновление Windows 10 за май 2020 г., обновление за октябрь 2020 г., обновление за май 2021 г., обновление за ноябрь 2021 г и обновление 2022 г.: 528372
Windows 11 и Windows Server 2022: 528449
Все остальные версии операционной системы Windows (включая другие операционные системы Windows 10): 528049
.NET Framework 4.8.1 Обновление Windows 11 2022: 533320
Все остальные операционные системы Windows: 533325

Минимальная версия

Чтобы определить, присутствует ли минимальная версия .NET Framework, найдите значение REG_DWORD выпуска, которое больше или равно соответствующему значению, указанному в таблице ниже. Например, если приложение работает на .NET Framework 4.8 или более поздней версии, проверьте, не превышает ли значение выпуска REG_DWORD 528040.

.NET Framework 4.5 378389
.NET Framework 4.5.1 378675
.NET Framework 4.5.2 379893
.NET Framework 4.6 393295
.NET Framework 4.6.1 394254
.NET Framework 4.6.2 394802
.NET Framework 4.7 460798
.NET Framework 4.7.1 461308
.NET Framework 4.7.2 461808
.NET Framework 4.8 528040
.NET Framework 4.8.1 533320

Использование редактора реестра

  1. В меню «Пуск» выберите «Выполнить», введите regedit и нажмите «ОК. (Для запуска regedit необходимы учетные данные администратора.)
  2. В редакторе реестра откройте следующий подраздел: HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4Full. Если полный подраздел отсутствует, .NET Framework 4.5 или более поздней версии не установлена.
  3. Проверьте значение REG_DWORD под названием Release. Если присутствует, установлена ​​.NET Framework 4.5 или более поздней версии. Это значение соответствует определенной версии .NET Framework. Например, на рисунке ниже значение параметра выпуска — 528040, что соответствует разделу выпуска .NET Framework 4.8.

Использование PowerShell для проверки минимальной версии

Используйте команды PowerShell, чтобы проверить значение записи Release в подразделе HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4Full.

В следующих примерах проверяется значение Release, чтобы определить, установлена ​​ли версия .NET Framework 4.6.2 или более поздняя. Код возвращает True, если установлена ​​одна из этих версий, и False в противном случае.

(Get-ItemPropertyValue -LiteralPath ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’ -Name Release) -ge 394802

Читайте также: Как узнать свою электронную почту

Отправка запросов в реестр с помощью кода

Используйте методы RegistryKey.OpenBaseKey и RegistryKey.OpenSubKey для доступа к подразделу HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4Full в реестре Windows.

Важно!

Если вы запускаете 32-разрядную программу в 64-разрядной версии Windows, пути реестра будут отличаться от перечисленных ранее. 64-разрядный реестр доступен в подразделе HKEY_LOCAL_MACHINESOFTWAREWow6432Node. Например, подраздел реестра для .NET Framework 4.5 — HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftNET Framework SetupNDPv4Full.

Проверьте значение выпуска REG_DWORD, чтобы определить, какая версия установлена. Чтобы обеспечить обратную совместимость, значение должно быть больше или равно значению, указанному в таблице версий .NET Framework.

В следующем примере проверяется значение записи Release в реестре, чтобы найти установленные версии .NET Framework 4.5–4.8.1.

Запрос реестра с помощью кода PowerShell

В следующем примере PowerShell используется для проверки значения записи Release в реестре и поиска установленных версий .NET Framework 4.5–4.8.1:

$release = Get-ItemPropertyValue -LiteralPath ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’ -Switch для выпуска name ($release) { { $_ -ge 533320 } { $version = ‘4.8.1 или позже’; перерыв } { $_ -ge 528040 } { $version = ‘4.8’; перерыв } { $_ -ge 461808 } { $version = ‘4.7.2’; перерыв } { $_ -ge 461308 } { $version = ‘4.7.1’; перерыв } { $_ -ge 460798 } { $version = ‘4.7’; перерыв } { $_ -ge 394802 } { $version = ‘4.6.2’; перерыв } { $_ -ge 394254 } { $version = ‘4.6.1’; перерыв } { $_ -ge 393295 } { $version = ‘4.6’; перерыв } { $_ -ge 379893 } { $version = ‘4.5.2’; перерыв } { $_ -ge 378675 } { $version = ‘4.5.1’; перерыв } { $_ -ge 378389 } { $version = ‘4.5’; перерыв} по умолчанию {$version = $null; Break } } if ($version) { Write-Host -Object «Версия .NET Framework: $version» } else { Write-Host -Object ‘.NET Framework версии 4.5 или более поздней не обнаружена.’

}

В этом примере используются рекомендации по контролю версий:

  • Проверяет, имеет ли параметр выпуска значение, большее или равное значению известных частей выпуска.
  • Проверка производится от последней к самой ранней версии.

Как узнать версию .NET Framework с помощью PowerShell?

Вы можете получить информацию об установленных версиях и выпусках .NET Framework на вашем компьютере с помощью PowerShell. Самый простой способ получить эти данные непосредственно из реестра — использовать командлеты Get-ChildItem и Get-ItemProperty (подробнее о работе с записями реестра узнайте из PowerShell).

Чтобы отобразить таблицу всех версий .Net Framework на вашем компьютере, выполните команду:

Get-ChildItem ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDP’ -Recurse | Get-ItemProperty -NameVersion -EA 0 | Где { $_.PSChildName -Match ‘^(?!S)p{L}’} | Выберите PSChildName, версию

вывести список установленных версий .net framework с помощью powershell

На этом компьютере установлены .Net версий 2.0, 3.0, 3.5 и 4.7.

Начиная с .Net v4.0, более новая версия платформы перезаписывает (заменяет) старую версию. Если на вашем компьютере была установлена ​​.NET Framework 4.7, старая версия исчезнет при установке .NET Framework 4.8.

Вы можете показать только номер выпуска (для версий .Net 4.x):

(Get-ItemProperty ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’ -Name Release

получить номер версии net framework из консоли PowerShell

Согласно таблице номер 528449 соответствует версии .Net Framework 4.8 в Windows 11.

Обнаружение .NET Framework с 1.0 по 4.0

Каждая версия .NET Framework от 1.1 до 4.0 указана в виде подраздела в HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDP. В следующей таблице перечислены пути для каждой версии .NET Framework. Для большинства версий значение установки REG_DWORD равно 1, что указывает на то, что версия установлена. Эти подразделы также имеют значение версии REG_SZ, содержащее строку версии.

Примечание

NET Framework Setup в пути реестра не начинается с точки.

1.0 HKLMПрограммное обеспечениеMicrosoft. NETFrameworkPolicyv1.03705 REG_SZ Установка соответствует 1
1.1 HKLMSoftwareMicrosoftNET Framework SetupNDPv1.1.4322 REG_DWORD Установка равна 1
2.0 HKLMSoftwareMicrosoftNET Framework SetupNDPv2.0.50727 REG_DWORD Установка равна 1
3.0 HKLMSoftwareMicrosoftNET Framework SetupNDPv3.0Setup Значение REG_DWORD InstallSuccess равно 1
3,5 HKLMSoftwareMicrosoftNET Framework SetupNDPv3.5 REG_DWORD Установка равна 1
Профиль клиента 4.0 HKLMSoftwareMicrosoftNET Framework SetupNDPv4Client REG_DWORD Установка равна 1
Полный профиль 4.0 HKLMSoftwareMicrosoftNET Framework SetupNDPv4Full REG_DWORD Установка равна 1

Важно!

Если вы запускаете 32-разрядную программу в 64-разрядной версии Windows, пути реестра будут отличаться от перечисленных ранее. 64-разрядный реестр доступен в подразделе HKEY_LOCAL_MACHINESOFTWAREWow6432Node. Например, подраздел реестра для .NET Framework 3.5 — HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftNET Framework SetupNDPv3.5.

Обратите внимание, что путь реестра подраздела .NET Framework 1.0 отличается от других.

Использование редактора реестра (более ранние версии платформы)

В меню «Пуск» выберите «Выполнить», введите regedit и нажмите «ОК.

Для запуска regedit необходимы учетные данные администратора.

откройте подраздел, соответствующий версии, которую вы хотите проверить. Используйте таблицу в разделе «Обнаружение .NET Framework 1.0–4.0.

На следующем изображении показан подраздел версии .NET Framework 3.5 вместе со значением версии.

Запрос реестра с помощью кода (более ранние версии платформы)

Используйте класс Microsoft.Win32.RegistryKey для доступа к подразделу HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDP в реестре Windows.

Важно!

Если вы запускаете 32-разрядную программу в 64-разрядной версии Windows, пути реестра будут отличаться от перечисленных ранее. 64-разрядный реестр доступен в подразделе HKEY_LOCAL_MACHINESOFTWAREWow6432Node. Например, подраздел реестра для .NET Framework 3.5 — HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftNET Framework SetupNDPv3.5.

В следующем примере проверяется наличие установленных версий .NET Framework с 1 по 4:

// Открытие раздела реестра для использования записи .NET Framework (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32). OpenSubKey(@»SOFTWAREMicrosoftNET Framework SetupNDP»)) { foreach (var versionKeyName i ndpKey.GetSub) { Пропустить информацию о версии .NET Framework 4.5 if (versionKeyName == «v4») { continue; } if (versionKeyName.StartsWith(«v»)) { RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName); // Получаем значение версии .NET Framework var name = (string)versionKey.GetValue(«Version», «»); // Получаем номер пакета обновления (SP) var sp = versionKey.GetValue(«SP», «»).ToString(); // Получаем флаг установки var install = versionKey.GetValue(«Installer», «»).ToString(); if (string.IsNullOrEmpty(install)) { // Нет информации об установке; он должен быть в подразделе. Console.WriteLine($»{versionKeyName} {name}»); } else if (install == «1») { // Install = 1 означает, что версия установлена ​​if (!string.IsNullOrEmpty(sp)) { Console.WriteLine($»{versionKeyName} {name} SP{sp}»); } else { Console.WriteLine($»{versionKeyName} {name}»); } } if (!string.IsNullOrEmpty(name)) {продолжить; } // выводим информацию из подразделов… // Перебираем подразделы подраздела версии foreach (var subKeyName in versionKey.GetSubKeyNames()) { RegistryKey subKey = versionKey.OpenSubKey(subKeyName); name = (string)subKey.GetValue(«Версия», «»); if (!string.IsNullOrEmpty(name)) sp = subKey.GetValue(«SP», «»).ToString(); install = subKey.GetValue(«Install», «»).ToString(); if (string.IsNullOrEmpty(install)) { // Нет информации об установке; это должно быть позже. Console.WriteLine($» {versionKeyName} {name}»); } else if (install == «1») { if (!string.IsNullOrEmpty(sp)) { Console.WriteLine($» {subKeyName} {name} SP{sp}»); } else { Console.WriteLine($» {subKeyName} {name}»); } } } } } } ‘ Открывает раздел реестра для записи .NET Framework. Использование ndpKey в качестве RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32). OpenSubKey(«SOFTWAREMicrosoftNET Framework SetupNDP») Для каждого VersionKeyName в ndpKey.GetSubKeyNames() ‘ Пропустить .NET Framework 4.5 и более поздние версии. If versionKeyName = «v4» Тогда продолжайте For If versionKeyName.StartsWith(«v») then Dim versionKey As RegistryKey = ndpKey.OpenSubKey(versionKeyName) ‘ Получите значение версии .NET Framework. Dim name = DirectCast(versionKey.GetValue(«Version», «»), String) ‘ Получаем номер пакета обновления (SP). Dim sp = versionKey.GetValue(«SP», «»).ToString() Dim install = versionKey.GetValue(«Install», «»).ToString() If String.IsNullOrEmpty(install) Тогда ‘ Нет информации об установке; он должен быть в подразделе. Console.WriteLine($»{versionKeyName} {name}») ElseIf install = «1» Тогда Если Не String.IsNullOrEmpty(sp) Тогда Console.WriteLine($»{versionKeyName} {name} SP{sp}») Else Console .WriteLine($»{versionKeyName} {name}») End If End If Not String.IsNullOrEmpty(name) then Continue For End If For Every subKeyName In versionKey.GetSubKeyNames() Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName) name = DirectCast(subKey.GetValue(«Версия», «»), String) Если не String.IsNullOrEmpty(name) Тогда sp = subKey.GetValue(«SP», «»).ToString() End If install = subKey. GetValue («Install», «»).ToString() If String.IsNullOrEmpty(install) Тогда ‘ Нет информации об установке; это должно быть позже. Console.WriteLine($» {versionKeyName} {name}») ElseIf install = «1» Тогда Если Не String.IsNullOrEmpty(sp) Тогда Console.WriteLine($» {subKeyName} {name} SP{sp}») Else Console .WriteLine($» {subKeyName} {name}») End If End If Next End If Next End Использование

В этом примере будут показаны выходные данные, аналогичные следующему:

v2.0.50727 2.0.50727.4927 SP2 v3.0 3.0.30729.4926 SP2 v3.5 3.5.30729.4926 SP1 v4.0 Клиент 4.0.0.0

Проверить версию .Net Framework на удаленных компьютерах

Вы можете удаленно получить список версий .Net Framework, установленных на компьютерах в вашей сети, с помощью PowerShell.

Ниже приведен небольшой сценарий PowerShell, который извлекает список компьютеров из текстового файла и проверяет версию .Net Framework для всех из них. Для запуска команд на удаленных компьютерах используйте командлет WinRM Invoke-Command.

Функция GetNetFramework {
Get-ChildItem ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDP’ -recurse |
Get-ItemProperty -name Версия,Выпуск -EA 0 |
Где { $_.PSChildName -match ‘^(?!SW)p{L}’} |
Выберите PSChildName, Версия, Выпуск, @{
имя=»продукт»
выражение={
переключатель -regex($_.Release) {
«378389» { Версия»4.5″ }
«378675|378758″ { Версия»4.5.1» }
«379893» { Версия»4.5.2″ }
«393295|393297″ { Версия»4.6» }
«394254|394271″ { Версия»4.6.1» }
«394802|394806″ { Версия»4.6.2» }
«460798|460805″ { Версия»4.7» }
«461308|461310″ { Версия»4.7.1» }
«461808|461814″ { Версия»4.7.2» }
«528040|528049|528449|528372″ { Версия»4.8″ }
{$_ -gt 528449} { Версия»Недокументированная версия (> 4.8)» }
}
}
}
}
$результат=@()
$servers= Get-Content C:PSservers.txt
foreach ($server в $servers)
{
$result+=Invoke-Command -ComputerName $server -ScriptBlock $function:GetNetFramework
}
$результат| выберите PSComputerName,@{name = «.NET Framework»; выражение = {$_.PSChildName}},Продукт,Версия,Версия| Out-GridView

Скрипт отображает таблицу (через Out-GridView) со списком версий .Net Framework, установленных на удаленных компьютерах.

скрипт poweshell для получения версий net framework на удаленных компьютерах

Вы также можете указать список компьютеров, на которых хотите проверить .NET, например:

$servers= @(«ПК1″,»ПК2″,»ПК3″,»ПК4″,»ПК5»)

Или выберите список компьютеров из домена с помощью командлета Get-ADComputer из модуля AD PowerShell. Следующая команда выберет все активные хосты Windows Server в домене:

$servers= Get-ADComputer -Filter ‘операционная система — например «*Windows server*» — и включена -eq «true»‘

Определение реализации и версии .NET, в которой работает приложение

Свойство RuntimeInformation.FrameworkDescription можно использовать для запроса реализации и версии запущенного приложения .NET. Если приложение работает в .NET Framework, выходные данные будут выглядеть примерно так:

.NET Framework 4.8.4250.0

Если приложение работает в .NET Core или .NET 5+, выходные данные будут выглядеть следующим образом:

.NET Core 3.1.9 .NET 5.0.0

Оцените статью
Блог про Samsung