Если кто не знал, то пакет .NET Framework содержит библиотеки, которые разработчики используют при написании собственных приложений. По сути это API посредством которого разработчик обращается к тем или иным функциям. На моей памяти пакетов .NET Framework уже множество: версии 2, 3.5, 4.0, 4.5.2, 4.6.2, 4.7.1, 4.7.2 и т.д. Как правило если для программы нужна именно младшая версия пакета, то значит программное обеспечение писалось исключительно под нее и не обновлялось. Исходя из этого, возникает вопрос, а какая же версия .NET Framework установлена сейчас в системе, может ее можно и нужно обновить на самую последнюю доступную.

Нашел таблицу какие версии пакета .NET Framework можно установить на Windows:

Версии .NET Framework для Windows

Шаг №1: Узнать установленную версию пакета .NET Framework можно через реестр:

on Windows 10 Pro

Win + R -> cmd.exe - regedit.exe - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\FULL

  • Имя: Release
  • Тип: REG_DWORD
  • Значение: 0x80ea8 (528040)
  • Имя: Version
  • Тип: REG_SZ
  • Значение: 4.8.03752

На заметку: Сопоставление Release версии пакета .NET Framework

  • releaseKey >= 528040 for version “4.8 or later”;
  • releaseKey >= 461808 for version “4.7.2”;
  • releaseKey >= 461308 for version “4.7.1”;
  • releaseKey >= 460798 for version “4.7”;
  • releaseKey >= 394802 for version “4.6.2”;
  • releaseKey >= 394254 for version “4.6.1”;
  • releaseKey >= 393295 for version “4.6”;
  • releaseKey >= 379893 for version “4.5.2”;
  • releaseKey >= 378675 for version “4.5.1”;
  • releaseKey >= 378389 for version “4.5”;

Шаг №2: Через консоль командной строки:

on Windows 10 Pro

Win + X - Command Prompt (Admin)

C:\Windows\system32>reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" /s

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full
    CBS    REG_DWORD    0x1
    Install    REG_DWORD    0x1
    InstallPath    REG_SZ    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
    Release    REG_DWORD    0x80ea8
    Servicing    REG_DWORD    0x0
    TargetVersion    REG_SZ    4.0.0
    Version    REG_SZ    4.8.03752

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\1033
    CBS    REG_DWORD    0x1
    Install    REG_DWORD    0x1
    Release    REG_DWORD    0x80ea8
    Servicing    REG_DWORD    0x0
    TargetVersion    REG_SZ    4.0.0
    Version    REG_SZ    4.8.03752

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\1049
    CBS    REG_DWORD    0x1
    Install    REG_DWORD    0x1
    Release    REG_DWORD    0x80ea8
    Servicing    REG_DWORD    0x0
    TargetVersion    REG_SZ    4.0.0
    Version    REG_SZ    4.8.03752

C:\Windows\system32>

а вот эти запросы у меня почему-то не отработали на виртуальной машине, а на физической отработали:

C:\Windows\system32>wmic product get name, version | findstr /C:.NET
Microsoft .NET Core Host FX Resolver - 3.1.32 (x64)                                                 24.192.31915        
Microsoft .NET Core Runtime - 3.1.32 (x64)                                                          24.192.31915        
Microsoft .NET Core Host - 3.1.32 (x64)                                                             24.192.31915
C:\Windows\system32>wmic product get description | findstr /C:.NET
Microsoft .NET Core Host FX Resolver - 3.1.32 (x64)
Microsoft .NET Core Runtime - 3.1.32 (x64)
Microsoft .NET Core Host - 3.1.32 (x64)

можно сделать еще вот такой batch файл (check.bat)

@echo off
set "mycmd=powershell -ExecutionPolicy Bypass echo $psversiontable ^| find /i "CLRVersion""
for /f "tokens=2,3,4 delims=. " %%a in ('%mycmd%') do set dotnetver=%%a.%%b.%%c
set "mycmd=%windir%\Microsoft.NET\Framework\v%dotnetver%\MSBuild.exe -version ^| find /i "Build""
for /f "tokens=6,7 delims= " %%a in ('%mycmd%') do set dotnetver=%%a
echo %dotnetver%

Результат выполнения:

C:\Windows\system32>c:\Soft\check.bat

4.8.3752.0

Шаг №3: Либо по наличию каталога установки и свойства файла внутри него:

on Windows 10 Pro

Win + E - C:\Windows\Microsoft.NET\Framework и видим каталог, у меня это v4.0.30319

Либо по наличию каталога установки

переходим в этот каталог v4.0.30319 и внутри на любом файле, к примеру, на Accessibility.dll открываем "Свойства" — вкладка "Подробно" и видим, что версия файла: 4.8.3752.0, что соответствует установленному пакету .NET Framework 4.8

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

На этом заметка завершена, если будут еще что-то, то она будет дополнена, с уважением автор блога Олло Александр aka ekzorchik.

От ekzorchik