Если кто не знал, то пакет .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:
Шаг №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.