Как узнать версию net framework в windows 7
Перейти к содержимому

Как узнать версию net framework в windows 7

  • автор:

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

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

Информация об установленных в системе версиях .Net хранится в реестре. Для ее получения надо открыть редактор реестра и перейти в раздел HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP, в котором перечислены все установленные в системе версии. Подробная информация хранится в разделах с именем версии, а для версий старше 4.0 — в подразделе Client или Full. Вот некоторые параметры:

• Install — флаг установки версии;
• Version — полный номер версии;
• Install Path — директория установки;
• Release — номер текущей версии.

Как правило, требуется узнать номер последней установленной версии. Выяснить это можно из параметра Release, например:

378389 — .Net Framework 4.5;
378675 — .Net Framework 4.5.1 в Windows 8.1 и Windows Server 2012 R2;
378758 — .Net Framework 4.5.1 в Windows 7\8 и Windows Server 2008\2012;
379893 — .Net Framework 4.5.2.

версия .Net в реестре

В качестве альтернативы редактору реестра можно воспользоваться консолью PowerShell. Доступ к реестру в PowerShell осуществляется с помощью провайдера, который позволяет просматривать ветки реестра как папки в файловой системе. Например, проверить содержимое ветки HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full можно командой:

dir «HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full»

версия .Net в PowerShell

Также выяснить установленные версии .NET Framework можно с помощью сторонних программ, например Asoft .Net Version Detector. Программа не требует установки, достаточно распаковать ее и запустить. Она выводит все установленные на компьютере версии .NET, а также максимальную доступную на текущий момент версию.

версия .Net с помощью программы

В качестве заключения напомню, что в серверных ОС начиная с Windows Server 2012, базовые версии .Net (3.5 и 4.5) является частью системы и устанавливаются в виде компонента (Feature), а минорные (4.5.1, 4.5.2 и пр.) приезжают в качестве обновлений с Windows Update. Подробное описание новых версий .Net можно посмотреть на сайте MSDN.

Как узнать установленные версии .NET Framework в Windows?

date

14.12.2021

user

itpro

directory

Windows 10, Windows 11, Windows Server 2016, Windows Server 2019

comments

комментария 2

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

�� Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Информация об установленных версиях .NET Framework в реестре

При установке или обновлении любой версии .NET Framework, изменения записываются в реестр Windows.

Откройте редактор реестра (regedit.exe) и перейдите в раздел HKLM\ SOFTWARE\Microsoft\NET Framework Setup\NDP. В этой ветке хранится информация обо всех версиях .NET на компьютере. Разверните любой раздел и обратите внимание на следующие параметры (для .Net 4.x нужно развернуть ветку Full):

  • Install — флаг установки (если равен 1, значит данная версия .Net установлена на компьютере);
  • Install Path — каталог, в который установлена данная версия .Net;
  • Release — номер релиза .Net;
  • Version — полный номер версии .Net Framework.

версии .Net Framework в реестре

Примечание. Для .NET 4.0 и выше, если подраздел Full отсутствует, это значит, что данная версия Framework на компьютере не установлена.

К примеру, в данном примере видно, что на компьютере установлены .NET Framework v2.0.50727, 3.0, 3.5 и 4.7 (релиз 460805).

Обратите внимание, что в серверных ОС начиная с Windows Server 2012, все базовые версии .Net (3.5 и 4.5) является частью системы и устанавливаются в виде отдельного компонента (Установка .NET Framework 3.5 в Windows Server 2016, в Windows Server 2012 R2), а минорные (4.5.1, 4.5.2 и т.д.) устанавливаются уже в виде обновлений через Windows Update или WSUS.

С помощью следующей таблицы вы можете установить соответствие между номером релиза и версией .NET Framework (применимо к .NET 4.5 и выше).

Значение DWORD параметра Release Версия .NET Framework
378389 .NET Framework 4.5
378675 NET Framework 4.5.1 на Windows 8.1 / Windows Server 2012 R2
378758 .NET Framework 4.5.1 на Windows 8, Windows 7 SP1, Windows Vista SP2
379893 .NET Framework 4.5.2 393295 .NET Framework 4.6 на Windows 10 393297 .NET Framework 4.6 394254 .NET Framework 4.6.1 на Windows 10 1511 394271 .NET Framework 4.6.1 394802 .NET Framework 4.6.2 на Windows 10 1607

.NET Framework 4.8 сегодня — самая последняя доступная версия .NET Framework.

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

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

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

Get-ChildItem ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP’ -Recurse | Get-ItemProperty -Name version -EA 0 | Where < $_.PSChildName -Match ‘^(?!S)\p’> | Select PSChildName, version

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

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

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

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

(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Release

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

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

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

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

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

Function GetNetFramework Get-ChildItem ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP’ -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where < $_.PSChildName -match '^(?![SW])\p'> |
Select PSChildName, Version, Release, @name=»Product»
expression=switch -regex ($_.Release) «378389» < [Version]"4.5" >
«378675|378758» < [Version]"4.5.1" >
«379893» < [Version]"4.5.2" >
«393295|393297» < [Version]"4.6" >
«394254|394271» < [Version]"4.6.1" >
«394802|394806» < [Version]"4.6.2" >
«460798|460805» < [Version]"4.7" >
«461308|461310» < [Version]"4.7.1" >
«461808|461814» < [Version]"4.7.2" >
«528040|528049|528449|528372» < [Version]"4.8" >
< [Version]"Undocumented version (>4.8)» >
>
>
>
>
$result=@()
$servers= Get-Content C:\PS\servers.txt
foreach ($server in $servers)
$result+=Invoke-Command -ComputerName $server -ScriptBlock $function:GetNetFramework
>
$result| select PSComputerName,@>,Product,Version,Release| Out-GridView

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

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

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

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

$servers= Get-ADComputer -Filter ‘operatingsystem -like «*Windows server*» -and enabled -eq «true»‘

Вывести версии .NET Framework в командной строке

Все версии.NET Framework устанавливаются в следующие каталоги Windows:

  • %SystemRoot%\Microsoft.NET\Framework
  • %SystemRoot%\Microsoft.NET\Framework64

Вы можете просто открыть этот каталог и увидеть список установленных версий .NET. Каждой версии соответствует отдельный каталог с символом v и номером версии в качестве имени папки. Можно вывести список установленных версий .NET Framework из команды строки:

dir %WINDIR%\Microsoft.Net\Framework\v* /O:-N /B

узнать версию net framework из командной строки windows

Команда выведет все установленные версии кроме 4.5, т.к. .NET Framework 4.5 устанавливается в подкаталог v4.0.xxxxx.

�� Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Практическое руководство. Определение установленных версий платформы .NET Framework

На компьютере можно установить и запустить несколько версий платформы .NET Framework. При разработке или развертывании приложения могут потребоваться сведения о том, какие версии .NET Framework установлены на компьютере пользователя. Реестр содержит список версий .NET Framework, установленных на компьютере.

Эта статья относится к .NET Framework. Чтобы определить, какие пакеты SDK и среды выполнения .NET Core и .NET 5+ установлены, см. раздел Как проверить, что .NET уже установлен.

Платформа .NET Framework состоит из двух основных компонентов, версии которым присваиваются отдельно:

  • набор сборок, которые являются коллекциями типов и ресурсов, обеспечивающих функции приложений (.NET Framework и сборкам назначается один номер версии); Например, версии .NET Framework включают в себя 4.5, 4.6.1 и 4.7.2.
  • среда CLR, которая выполняет код приложения и управляет им. Одна версия среды CLR обычно поддерживает несколько версий .NET Framework. Например, CLR версии 4.0.30319.xxxxx, где xxxxx меньше 42000, поддерживает .NET Framework версий с 4 по 4.5.2. Версия CLR не менее 4.0.30319.42000 поддерживает версии .NET Framework начиная с .NET Framework 4.6.

Средства, поддерживаемые сообществом, помогают определить, какие версии .NET Framework установлены:

  • https://github.com/jmalarcon/DotNetVersions Программа командной строки .NET Framework 2.0.
  • https://github.com/EliteLoser/DotNetVersionLister Модуль PowerShell 2.0.

Сведения об обнаружении установленных обновлений для каждой версии платформа .NET Framework см. в разделе «Практическое руководство. Определение установленных обновлений платформа .NET Framework».

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

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

.NET Framework 4.8.4250.0 

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

.NET Core 3.1.9 .NET 5.0.0 

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

Версия платформа .NET Framework (4.5 и более поздних версий) установлена на компьютере в реестре по адресу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Если отсутствует подраздел Full, то .NET Framework 4.5 или более поздней версии не установлен.

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

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

Версия платформы .NET Framework Значение Release
.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: 394802
Во всех других операционных системах Windows (включая другие операционные системы Windows 10): 394806
.NET Framework 4.7 В Windows 10 Creators Update: 460798
Во всех других операционных системах Windows (включая другие операционные системы Windows 10): 460805
.NET Framework 4.7.1 В Windows 10 Fall Creators Update и Windows Server версии 1709: 461308
Во всех других операционных системах Windows (включая другие операционные системы Windows 10): 461310
.NET Framework 4.7.2. Обновление Windows 10 апреля 2018 г. и Windows Server версии 1803: 461808
Во всех операционных системах Windows, отличных от Windows 10 апреля 2018 г. с обновлением и 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 и Windows 11 2023: 533320
Все остальные операционные системы Windows: 533325

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

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

Версия платформы .NET Framework Минимальное значение
.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

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

Registry entry for .NET Framework 4.5

  1. В меню Пуск выберите Выполнить, введите regedit и нажмите кнопку ОК. (Для запуска программы regedit необходимы учетные данные администратора.)
  2. В редакторе реестра откройте следующий подраздел: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Если подраздел Full отсутствует, платформа .NET Framework 4.5 или более поздней версии не установлена.
  3. Проверьте значение REG_DWORD с именем Release. Если оно имеется, платформа .NET Framework 4.5 или более поздней версии установлена. Это значение соответствует определенной версии .NET Framework. Например, на приведенном ниже рисунке значение параметра Release равно 528040, что является разделом выпуска для .NET Framework 4.8.

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

Используйте команды PowerShell для проверки значения параметра Release в подразделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full.

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

(Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 394802 

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

  1. Используйте методы RegistryKey.OpenBaseKey и RegistryKey.OpenSubKey для доступа к подразделу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full в реестре Windows.

Важно! Если вы используете 32-разрядное приложение в 64-разрядной версии Windows, пути реестра будут отличаться от указанных ранее. 64-разрядный реестр доступен в подразделе HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . Например, подраздел реестра для платформа .NET Framework 4.5 имеет значение HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.

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

Добавьте директиву using Microsoft.Win32 или Imports Microsoft.Win32 в начало файла кода, если вы еще этого не сделали.

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: "); > 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 >= 533320) return "4.8.1 or later"; if (releaseKey >= 528040) return "4.8"; if (releaseKey >= 461808) return "4.7.2"; 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"; > 
Private Sub Get45PlusFromRegistry() Const subkey As String = "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" Using ndpKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey) If ndpKey IsNot Nothing AndAlso ndpKey.GetValue("Release") IsNot Nothing Then Console.WriteLine($".NET Framework Version: ") Else Console.WriteLine(".NET Framework Version 4.5 or later is not detected.") End If End Using End Sub ' Checking the version using >= enables forward compatibility. Private Function CheckFor45PlusVersion(releaseKey As Integer) As String If releaseKey >= 533320 Then Return "4.8.1 or later" ElseIf releaseKey >= 528040 Then Return "4.8" ElseIf releaseKey >= 461808 Then Return "4.7.2" ElseIf releaseKey >= 461308 Then Return "4.7.1" ElseIf releaseKey >= 460798 Then Return "4.7" ElseIf releaseKey >= 394802 Then Return "4.6.2" ElseIf releaseKey >= 394254 Then Return "4.6.1" ElseIf releaseKey >= 393295 Then Return "4.6" ElseIf releaseKey >= 379893 Then Return "4.5.2" ElseIf releaseKey >= 378675 Then Return "4.5.1" ElseIf releaseKey >= 378389 Then Return "4.5" End If ' 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" End Function 

Этот пример выводит данные, подобные следующим:

.NET Framework Version: 4.6.1 

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

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

$release = Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release switch ($release) < < $_ -ge 533320 > < $version = '4.8.1 or later'; break > < $_ -ge 528040 > < $version = '4.8'; break > < $_ -ge 461808 > < $version = '4.7.2'; break > < $_ -ge 461308 > < $version = '4.7.1'; break > < $_ -ge 460798 > < $version = '4.7'; break > < $_ -ge 394802 > < $version = '4.6.2'; break > < $_ -ge 394254 > < $version = '4.6.1'; break > < $_ -ge 393295 > < $version = '4.6'; break > < $_ -ge 379893 > < $version = '4.5.2'; break > < $_ -ge 378675 > < $version = '4.5.1'; break > < $_ -ge 378389 > < $version = '4.5'; break >default < $version = $null; break >> if ($version) < Write-Host -Object ".NET Framework Version: $version" >else

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

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

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

Каждая версия платформа .NET Framework от 1.1 до 4.0 указана как подраздел в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP. В следующей таблице перечислены пути к каждой версии .NET Framework. Для большинства версий существует значение REG_DWORD Install, равное 1 , чтобы указать, что эта версия установлена. В этих подразделах также имеется значение REG_SZ Version, содержащее строку версии.

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

Версия платформы Подраздел реестра Значение
1.0 HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 REG_SZ Install равно 1
1,1 HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 REG_DWORD Install равно 1
2.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 REG_DWORD Install равно 1
3.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup Значение REG_DWORD InstallSuccess равно 1
3.5 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 REG_DWORD Install равно 1
Клиентский профиль 4.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client REG_DWORD Install равно 1
Полный профиль 4.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full REG_DWORD Install равно 1

Если вы используете 32-разрядное приложение в 64-разрядной версии Windows, пути реестра будут отличаться от указанных ранее. 64-разрядный реестр доступен в подразделе HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . Например, подраздел реестра для платформа .NET Framework 3.5 — HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

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

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

The registry entry for .NET Framework 3.5.

  1. В меню Пуск выберите Выполнить, введите regedit и нажмите кнопку ОК. Для запуска программы regedit необходимы учетные данные администратора.
  2. Откройте подраздел, соответствующий версии, которую необходимо проверить. Используйте таблицу в разделе Обнаружение .NET Framework с 1.0 по 4.0. На приведенном ниже рисунке показан подраздел для версии .NET Framework 3.5 вместе со значением Version.

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

Microsoft.Win32.RegistryKey Используйте класс для доступа к подразделу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP в реестре Windows.

Если вы используете 32-разрядное приложение в 64-разрядной версии Windows, пути реестра будут отличаться от указанных ранее. 64-разрядный реестр доступен в подразделе HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . Например, подраздел реестра для платформа .NET Framework 3.5 — HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

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

// Open the registry key for the .NET Framework entry. using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32). OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\")) < foreach (var versionKeyName in ndpKey.GetSubKeyNames()) < // Skip .NET Framework 4.5 version information. if (versionKeyName == "v4") < continue; >if (versionKeyName.StartsWith("v")) < RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName); // Get the .NET Framework version value. var name = (string)versionKey.GetValue("Version", ""); // Get the service pack (SP) number. var sp = versionKey.GetValue("SP", "").ToString(); // Get the installation flag. var install = versionKey.GetValue("Install", "").ToString(); if (string.IsNullOrEmpty(install)) < // No install info; it must be in a child subkey. Console.WriteLine($""); > else if (install == "1") < // Install = 1 means the version is installed. if (!string.IsNullOrEmpty(sp)) < Console.WriteLine($" SP"); > else < Console.WriteLine($""); > > if (!string.IsNullOrEmpty(name)) < continue; >// else print out info from subkeys. // Iterate through the subkeys of the version subkey. foreach (var subKeyName in versionKey.GetSubKeyNames()) < RegistryKey subKey = versionKey.OpenSubKey(subKeyName); name = (string)subKey.GetValue("Version", ""); if (!string.IsNullOrEmpty(name)) sp = subKey.GetValue("SP", "").ToString(); install = subKey.GetValue("Install", "").ToString(); if (string.IsNullOrEmpty(install)) < // No install info; it must be later. Console.WriteLine($" "); > else if (install == "1") < if (!string.IsNullOrEmpty(sp)) < Console.WriteLine($"  SP"); > else < Console.WriteLine($" "); > > > > > > 
' Opens the registry key for the .NET Framework entry. Using ndpKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32). OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\") For Each versionKeyName In ndpKey.GetSubKeyNames() ' Skip .NET Framework 4.5 and later. If versionKeyName = "v4" Then Continue For If versionKeyName.StartsWith("v") Then Dim versionKey As RegistryKey = ndpKey.OpenSubKey(versionKeyName) ' Get the .NET Framework version value. Dim name = DirectCast(versionKey.GetValue("Version", ""), String) ' Get the service pack (SP) number. Dim sp = versionKey.GetValue("SP", "").ToString() Dim install = versionKey.GetValue("Install", "").ToString() If String.IsNullOrEmpty(install) Then ' No install info; it must be in a child subkey. Console.WriteLine($" ") ElseIf install = "1" Then If Not String.IsNullOrEmpty(sp) Then Console.WriteLine($"  SP") Else Console.WriteLine($" ") End If End If If Not String.IsNullOrEmpty(name) Then Continue For End If For Each subKeyName In versionKey.GetSubKeyNames() Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName) name = DirectCast(subKey.GetValue("Version", ""), String) If Not String.IsNullOrEmpty(name) Then sp = subKey.GetValue("SP", "").ToString() End If install = subKey.GetValue("Install", "").ToString() If String.IsNullOrEmpty(install) Then ' No install info; it must be later. Console.WriteLine($" ") ElseIf install = "1" Then If Not String.IsNullOrEmpty(sp) Then Console.WriteLine($"  SP") Else Console.WriteLine($" ") End If End If Next End If Next End Using 

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

v2.0.50727 2.0.50727.4927 SP2 v3.0 3.0.30729.4926 SP2 v3.5 3.5.30729.4926 SP1 v4.0 Client 4.0.0.0 

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

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

Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' | Where-Object < ($_.PSChildName -ne "v4") -and ($_.PSChildName -like 'v*') >| ForEach-Object < $name = $_.Version $sp = $_.SP $install = $_.Install if (-not $install) < Write-Host -Object "$($_.PSChildName) $($name)" >elseif ($install -eq '1') < if (-not $sp) < Write-Host -Object "$($_.PSChildName) $($name)" >else < Write-Host -Object "$($_.PSChildName) $($name) SP$($sp)" >> if (-not $name) < $parentName = $_.PSChildName Get-ChildItem -LiteralPath $_.PSPath | Where-Object < if ($_.Property -contains 'Version') < $name = Get-ItemPropertyValue -Path $_.PSPath -Name Version >if ($name -and ($_.Property -contains 'SP')) < $sp = Get-ItemPropertyValue -Path $_.PSPath -Name SP >if ($_.Property -contains 'Install') < $install = Get-ItemPropertyValue -Path $_.PSPath -Name Install >if (-not $install) < Write-Host -Object " $($parentName) $($name)" >elseif ($install -eq '1') < if (-not $sp) < Write-Host -Object " $($_.PSChildName) $($name)" >else < Write-Host -Object " $($_.PSChildName) $($name) SP$($sp)" >> > > > 

Поиск версий CLR

.NET Framework CLR, установленный с .NET Framework, имеет отдельную версию. Есть два способа определить версию среды выполнения .NET Framework CLR:

    Инструмент Clrver.exe Для определения версий среды CLR, установленных на компьютере, можно использовать средство CLR Version (Clrver.exe). Откройте Командную строку разработчика или PowerShell для разработчиков в Visual Studio и введите clrver . Образец вывода:

Versions installed on the machine: v2.0.50727 v4.0.30319 

Важно! Для .NET Framework 4.5 и более поздних версий не следует использовать свойство Environment.Version для определения версии среды CLR. Вместо этого выполните запрос к реестру, как описано в разделе Обнаружение .NET Framework 4.5 и более поздних версий.

  1. Выполните запрос к свойству Environment.Version, чтобы получить объект Version. Возвращенный объект System.Version указывает версию среды выполнения, в которой в настоящее время выполняется код. Он не содержит версий сборок или других версий среды выполнения, которые установлены на компьютере. Для платформы .NET Framework версий 4, 4.5, 4.5.1 и 4.5.2 возвращаемый объект Version имеет строковое представление 4.0.30319.xxxxx, где xxxxx меньше 42000. Для .NET Framework 4.6 и более поздних версий оно имеет форму 4.0.30319.42000.
  2. Получив объект Version, выполните к нему запрос:
    • Чтобы получить идентификатор основного выпуска (например, 4 в случае версии 4.0), используйте свойство Version.Major.
    • Чтобы получить идентификатор дополнительной версии (например, 0 в случае версии 4.0), используйте свойство Version.Minor.
    • Чтобы получить всю строку версии (например, 4.0.30319.18010), используйте метод Version.ToString. Он возвращает одно значение, соответствующее версии среды выполнения, в которой выполняется код. Он не возвращает версий сборок или других версий среды выполнения, которые установлены на компьютере.

В следующем примере свойство Environment.Version используется для получения сведений о версии среды CLR:

Console.WriteLine($"Version: "); 
Console.WriteLine($"Version: ") 

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

Version: 4.0.30319.18010 

См. также

  • Практическое руководство. Определение установленных обновлений платформа .NET Framework
  • Устранение неполадок. Определение версий и пакетов обновления платформа .NET Framework
  • Установка .NET Framework для разработчиков
  • Версии и зависимости платформы .NET Framework

Совместная работа с нами на GitHub

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

Обратная связь

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.

Отправить и просмотреть отзыв по

Дополнительные ресурсы

Значок отказа согласно Закону Калифорнии о защите конфиденциальности потребителей (CCPA)

  • Светлая
  • Темная
  • Высокая контрастность
  • Предыдущие версии
  • Блог
  • Участие в доработке
  • Конфиденциальность
  • Условия использования
  • Товарные знаки
  • © Microsoft 2024

Как узнать версию Microsoft.NET Framework

Microsoft.NET Framework

Часто возникает необходимость узнать какая версия Microsoft.NET Framework установлена на компьютере и установлен али вообще. Проверить наличие Microsoft.NET Framework можно или через панель управления или в проводнике

Проверить версию Microsoft.NET Framework через панель управления

Проверить версию Microsoft.NET Framework через панель управления

  1. Перейдите в меню «Панель управления/Программы и компоненты» (для Windows 10 — «Панель управления/Программы/Программы и компоненты»).
  2. Найдите в списке Microsoft .NET Framework, здесь же указана версия программы.
  3. Если Microsoft .NET Framework отсутствует в списке программ, перейдите по ссылке «Включение или отключение компонентов Windows». В открывшемся списке найдите Microsoft .NET Framework и его версию.
Проверить версию Microsoft.NET Framework через проводник

Проверить версию Microsoft.NET Framework через проводник

  1. В адресную строку проводника скопируйте «%windir%\Microsoft.NET\Framework\», нажмите «Enter».
  2. В открывшейся папке видно, какие версии Microsoft.NET Framework установлены на компьютере.
Замечание относительно версионности
  • в состав .NET Framework 3.5 входит .NET Framework 2.0 и 3.0,
  • в состав .NET Framework 4.5 — .NET Framework 4.0,
  • .NET Framework 4.5.1 является только обновлением .NET Framework 4.5.
Особенность при установке Microsoft.NET Framework в операционной системе Windows XP

В операционной системе Windows XP невозможно установить Microsoft NET Framework версии старше чем 4.0, однако автономный установщик с сайта Microsoft не ставит обновление Microsoft NET Framework 4.0.3, которое необходимо установить отдельно, скачав по ссылке: https://www.microsoft.com/ru-RU/download/details.aspx?id=29053

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *