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

itpro

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

комментария 2
В Windows одновременно можно одновременно установить и запустить несколько версий .NET Framework. При разработке или развертывания нового приложения, основанного на библиотеках .NET, иногда нужно предварительно узнать какие версии и пакеты обновления .Net Framework уже установлены на компьютере пользователя или на сервере. Вы можете получить список версий .NET Framework, установленных на компьютере, несколькими способами.
Информация об установленных версиях .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 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 и выше).
.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 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

Согласно таблице, номер 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, установленных на удаленных компьютерах.

Также вы можете задать список компьютеров, на которых нужно проверить .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

Команда выведет все установленные версии кроме 4.5, т.к. .NET Framework 4.5 устанавливается в подкаталог v4.0.xxxxx.
Предыдущая статья Следующая статья
Как узнать версию Microsoft.NET Framework

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

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

- В адресную строку проводника скопируйте «%windir%\Microsoft.NET\Framework\», нажмите «Enter».
- В открывшейся папке видно, какие версии 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
Как определить версию .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.

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

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

В качестве заключения напомню, что в серверных ОС начиная с Windows Server 2012, базовые версии .Net (3.5 и 4.5) является частью системы и устанавливаются в виде компонента (Feature), а минорные (4.5.1, 4.5.2 и пр.) приезжают в качестве обновлений с Windows Update. Подробное описание новых версий .Net можно посмотреть на сайте MSDN.
Как узнать версию .NET Framework, необходимую для запуска сборки?
У меня есть исполнимый EXE файла .NET. Как имея только его узнать необходимую версию .NET Framework необходимую для запуска ?
Отслеживать
423 1 1 золотой знак 4 4 серебряных знака 21 21 бронзовый знак
задан 5 авг 2015 в 8:54
419 4 4 серебряных знака 14 14 бронзовых знаков
Вам не должно этого хотеться. У приложения должен быть инсталлятор.
5 авг 2015 в 9:02
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Запустите ildasm из Developer Command Prompt студии (или по полному пути, у меня это C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\ildasm.exe).
Откройте в нем exe, и посмотрите MANIFEST — там будут референсы на системные сборки:
// Metadata version: v4.0.30319 .assembly extern mscorlib < .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 >.assembly extern System.Core < .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 >
их версии совпадают с требуемой версией .NET
