В Windows одновременно можно одновременно установить и запустить несколько версий .NET Framework. При разработке или развертывания нового приложения, основанного на библиотеках .NET, иногда нужно предварительно узнать какие версии и пакеты обновления .Net Framework уже установлены на компьютере пользователя или на сервере. Вы можете получить список версий .NET Framework, установленных на компьютере, несколькими способами.
Содержание:
- Информация об установленных версиях .NET Framework в реестре
- Как узнать версию .NET Framework с помощью PowerShell?
- Проверить версию .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 и выше).
Значение 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 |
394806 | .NET Framework 4.6.2 |
460798 | .NET Framework 4.7 на Windows 10 1703 |
460805 | .NET Framework 4.7 |
461308 | .NET Framework 4.7.1 на Windows 10 1709 |
461310 | .NET Framework 4.7.1 |
461808 | .NET Framework 4.7.2 на Windows 10 1803 |
461814 | .NET Framework 4.7.2 |
528372 | .NET Framework 4.8 на Windows 10 2004, 20H2, и 21H1 |
528040 | .NET Framework 4.8 на Windows 10 1903 и 1909 |
528449 | .NET Framework 4.8 в Windows Server 2022 и Windows 11 |
528049 | .NET Framework 4.8 (остальные версии Window) |
.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{L}’} | 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{L}'} |
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" }
{$_ -gt 528449} { [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,@{name = ".NET Framework"; expression = {$_.PSChildName}},Product,Version,Release| Out-GridView
Скрипт выводит табличку (через Out-GridView) со списком версий .Net Framework, установленных на удаленных компьютерах.
Также вы можете задать список компьютеров, на которых нужно проверить .NET так:
$servers= @("pc1","pc2","pc3","pc4","pc5")
Или выбрать список компьютеров из домена с помощью командлета 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.
Содержание
Как определить установленные версии .NET Framework
В этой заметке рассмотрены разные способы определения установленных версий .NET Framework на ОС Windows и Windows Server.
Проверка в проводнике Windows
Проверка с помощью Проводника Windows (File Explorer) заключается в изучении содержимого каталога C:\Windows\Microsoft.NET\Framework
.
В этом каталоге найдите подкаталог с самой большой версией, например v4.0.30319
.
В подкаталоге откройте свойства любой библиотеки с расширением *.dll и на вкладке «Подробно» версия будет указана в поле «Версия продукта». В нашем примере это версия 4.8.4084.0
.
Проверка в системном реестре
Информацию об установленных версиях .NET Framework из системного реестра Windows можно извлечь разными способами.
Запрос с помощью утилиты командной строки reg с опросом ключа реестра HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP
:
reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" /s
Запрос с помощью командлетов PowerShell:
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse ` | Get-ItemProperty -Name version -EA 0 ` | Where { $_.PSChildName -Match '^(?!S)\p{L}'} ` | Select PSChildName, version
Проверено на следующих конфигурациях:
Версия ОС |
---|
Microsoft Windows 10 21H2 (19044) |
Автор первичной редакции:
Алексей Максимов
Время публикации: 10.11.2022 11:32
on August 24, 2011
We can find the .NET version running on a computer by either of the following ways.
Run appwiz.cpl. This shows the list of all the programs installed on your computer.
Check for the entries starting with ‘Microsoft .NET Framework’. You may find multiple entries of .NET Framework like below. The higher version of the .NET package you have is the version running on your computer. In the below case it’s .NET Framework 4.
Find .NET Framework version from command prompt
You can run below wmic command to retrieve the version
wmic product get description | findstr /C:.NET
Example:
C:\>wmic product get description | findstr /C:.NET Microsoft .NET Framework 4.5.1
You can list older .NET versions running on your computer by running a simple command shown below.
dir /b %windir%\Microsoft.NET\Framework\v*
Running the above command will print all older .NET versions installed on the computer. Note that this does not show the latest version. So this command can be helpful to find older versions, we should check Appwiz.cpl or use the WMIC command above to find the latest version.
C:\> dir /b %windir%\Microsoft.NET\Framework\v* v1.0.3705 v1.1.4322 v2.0.50727 v3.0 v3.5 v4.0.30319
With the release of each new version of .NET Framework, users are bound to install as many framework versions as possible as some applications require .NET Framework version 3.5 and some will work only on version 2.0. Microsoft does not give an easy way to check which versions of .NET Framework are installed on a Windows system.
Nope, you can’t check it from Apps and Features or Programs and Features!
We have already share a software called .NET Framework detector which can list down the frameworks installed and supported by your system. Although it is an easier way to check but sometimes it becomes difficult to install the software on every system if you are a developer or a network admin.
Table of Contents
Windows 10 Version 1803 has .NET Framework 4.7.2 installed by default. There are a few ways we can check which versions of .NET Framework are installed using command line. Let’s go through them one by one.
How to check .NET Framework Version Using Command Line
1- Using Windows directory
Here we are going to check which .Net Framework is installed on your computer through command line.
Simply open command Prompt from the start and then type any of the following commands
dir %windir%\Microsoft.NET\Framework /AD
It will show the list of all the directories with all the versions installed along with the latest ones.
Once you are in the directory then to check which latest version is installed type
.\MSBuild.exe -version
For example, if I want to check the exact version for .NET Framework 4, I will run the following commands in sequence:
dir %windir%\Microsoft.NET\Framework /AD cd %windir%\Microsoft.NET\Framework\v4.0.30319 .\MSBuild.exe -version
2- Using WMIC
You can list down the default (latest one) .NET Framework being used by the system using the WMIC command:
wmic product get description | findstr /C:.NET
If you want a list of all versions installed on your computer, you can also use the following command:
dir /b %windir%\Microsoft.NET\Framework\v*
This command is basically a rip-off of the first method we used above. This will not give you the exact version number as you still have to use the MSBuild command as listed above to get the exact version number.
Which method do you use for checking the installed .NET Framework version?
Все способы:
- Определяем установленную версию .NET Framework на компьютере
- Способ 1: ASoft .NET Version Detector
- Способ 2: Раздел «Программы и компоненты»
- Способ 3: Редактор реестра
- Способ 4: Скрипт для PowerShell
- Вопросы и ответы: 0
Библиотеки .NET Framework активно используются различным программным обеспечением при запуске и инсталляции. На данный момент времени уже была выпущена масса версий этого системного компонента, каждая из которых имеет в себе определенные файлы. Иногда требуется узнать, присутствует ли на компьютере определенная версия .NET Framework, чтобы после этого установить недостающие элементы либо начать инсталляцию ПО. В определении интересующего параметра помогут несколько способов, о которых мы и хотим поговорить далее.
Практически все приведенные ниже методы не требуют использования дополнительного софта для определения версии необходимой библиотеки, однако нельзя не отметить и сторонние решения, которые могут пригодиться юзерам разных категорий. Поэтому мы предлагаем сначала ознакомиться со всеми вариантами, а уже потом выбрать понравившийся.
Способ 1: ASoft .NET Version Detector
Выше мы уже упомянули стороннее программное обеспечение, поэтому давайте сразу разберемся с ним. В качестве дополнительного решения будем использовать ASoft .NET Version Detector — бесплатное ПО для определения установленных на компьютере версий .NET Framework. Вся задача осуществляется буквально в несколько кликов:
Скачать ASoft .NET Version Detector с официального сайта
- Перейдите по указанной выше ссылке и на сайте нажмите на соответствующую кнопку для начала скачивания ASoft .NET Version Detector.
- По завершении скачивания запустите приложение из архива.
- Подтвердите правила лицензионного соглашения.
- В отдельных колонках будут отображаться все существующие версии рассматриваемого компонента и источники, из которых они были получены.
- При необходимости скачивания какой-либо из них нажмите на специально отведенную кнопку.
Хоть ASoft .NET Version Detector — бесплатное и удобное обеспечение, не у каждого пользователя есть желание или возможность скачать его. В таких случаях мы рекомендуем прибегать к стандартным инструментам операционной системы.
Способ 2: Раздел «Программы и компоненты»
Практически каждый пользователь операционной системы Windows хоть раз сталкивался с разделом «Программы и компоненты». Обычно туда заходят, чтобы удалить какое-либо ПО или проверить последние установленные обновления. В этот раз мы задействуем присутствующую там информацию для получения сведений о версии .NET Framework.
- Откройте «Пуск» и перейдите в «Панель управления».
- Среди всех значков отыщите «Программы и компоненты». Кликните по нему дважды ЛКМ, чтобы перейти.
- Опуститесь вниз по списку и отыщите NET.Framework. В конце строки указывается версия.
Если вдруг вы обнаружили, что там присутствует более одной строки и указаны разные версии, это значит, что на этом компьютере установлен весь перечень сборок и были добавлены все файлы этих библиотек.
Способ 3: Редактор реестра
Значения большинства системных параметров операционной системы хранятся в редакторе реестра в виде отдельных файлов определенных форматов. Юзеры, уже столкнувшиеся с данным меню, знают, что там достаточно сложно найти какое-либо необходимое сведение без применения специальных инструкций. Это касается и определения версии рассматриваемой библиотеки. Поэтому мы предлагаем ознакомиться со следующим руководством.
- Откройте утилиту «Выполнить», зажав комбинацию Win + R. В поле введите
regedit
и нажмите на клавишу Enter или виртуальную кнопку «ОК». - Перейдите по пути
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\
, где отыщите отдельные директории с версиями .NET Framework. - Выберите одну из них и раскройте каталог Client или Full. Там отыщите параметр Install. Если его значение 1, значит данная версия установлена на компьютере. 0 обозначает отсутствие компонента.
Далее мы еще вернемся с редактору реестра и покажем, как еще проще определить инсталлированную версию компонента даже без открытия этого меню.
Способ 4: Скрипт для PowerShell
Начинающие пользователи вряд ли слышали о PowerShell, однако многие опытные знакомы с этой оболочкой. Данная утилита представлена в виде командной строки, где используется специальный язык управления сценариями, позволяющий запускать самые разнообразные скрипты. В этот раз мы задействуем PowerShell для определения версии компонента, а сделаем это следующим образом:
- Откройте «Пуск» и через поиск найдите нужное приложение. Запустите его от имени администратора.
- Обладателям Windows 7 понадобится ввести команду
(Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release -ge 394802
, а в Виндовс 10 —Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' | Get-ItemPropertyValue -Name Release | Foreach-Object { $_ -ge 394802 }
. Затем потребуется нажать на клавишу Enter. Число 394802 обозначает поиск файла в редакторе реестра, о чем мы детальнее поговорим далее. - Если запрашиваемый компонент не найден, появится результат False.
- В случае успеха отобразится True, что означает — искомая версия установлена.
Упомянутый выше номер у каждой версии разный. На официальном сайте компании Microsoft присутствует детальное описание этой информации. Перейдите по указанной ниже ссылке, чтобы ознакомиться с ней. После во вводимой команде уже нужно будет поставить определенный номер.
Версии и зависимости платформы .NET Framework
В рамках сегодняшней статьи вы узнали о четырех доступных методах определения установленных на компьютере версий .NET Framework. Найденные сведения помогут определиться с тем, какие дополнительные библиотеки следует установить.
Подробнее: Как обновить .NET Framework
Наша группа в TelegramПолезные советы и помощь