Як перевірити чи встановлено NET Framework




Як перевірити чи встановлено NET Framework



Визначення встановлених версій .NET Framework програмним шляхом

Номери встановлених версій .NET Framework зберігаються у реєстрі Windows. Для їх визначення потрібно відкрити гілку реєстру HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP, в підрозділах якої знаходяться відомості про конкретні версії.

Детальна інформація міститься у таких параметрах.

  • Install - прапор установки версії
  • Version - повний номер версії
  • SP - Номер встановленого Service Pack
  • InstallPath - папка установки

Починаючи з .NET Framework 4.0, параметри зберігаються у вкладених підрозділах Client та Full.

Щоб перевірити, чи встановлена ​​версія 4.0 або 4.5, потрібно перевірити наявність параметра Release у розділі HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full . Якщо такий параметр є, то встановлено 4.5, його значенням буде номер версії. Щоб визначити, фінальна версія 4.5, чи ні, значення Release має бути більшим або дорівнює 378389.

Приклад коду на C#, що виводить у консоль встановлені версії .NET Framework

Код скомпілюється та виконається на .NET Framework 4.0 та старше. Для запуску потрібні права адміністратора.

Public class NetVersionDetector < public static void Main() < using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP")) < versionKeyName in ndpKey.GetSubKeyNames()) < if (versionKeyName.StartsWith("v")) < RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName); string name = (string)versionKey.GetValue("Version", ""); string sp = versionKey.GetValue("SP", "").ToString(); string install = versionKey.GetValue("Install", "").ToString(); if (install == "") Console.WriteLine(versionKeyName + " " + name); else < if (sp != "" && install == "1") < Console.WriteLine(versionKeyName + " " + name + " SP" + sp); >> if (name != "") < continue; >foreach (string subKeyName in versionKey.GetSubKeyNames()) < RegistryKey subKey = versionKey.OpenSubKey(subKeyName); name = (string)subKey.GetValue("Version", ""); if (name != "") sp = subKey.GetValue("SP", "").ToString(); install = subKey.GetValue("Install", "").ToString(); if (install == "") Console.WriteLine(versionKeyName + " " + name); else < if (sp != "" && install == "1") < Console.WriteLine(" " + subKeyName + " " + name + " SP" + sp); >else if (install == "1") < Console.WriteLine(" " + subKeyName + " " + name); >> > > > > > >

Ця програма видасть приблизно наступний результат.

v1.1.4322 SP1 v2.0.50727 2.2.30729 SP2 v3.0 3.2.30729 SP2 v3.5 3.5.30729.01 SP1 v4 Client 4.0.30319 Full 4.0.30319

Таблиця параметрів реєстру для точного визначення встановленої версії .NET Framework

.NET Framework Пакет оновлення Розділ реєстру Параметр /
Тип / значення
4.5 Вихідний випуск HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full Release / REG_DWORD / Існує
4 - Client Вихідний випуск HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client Version / REG_SZ / 4.0.30319.0
4 - Full Вихідний випуск HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full Version / REG_SZ / 4.0.30319.0
3.5 Вихідний випуск HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 SP/REG_DWORD/0
3.5 Service Pack 1 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 SP/REG_DWORD/1
3.0 Вихідний випуск HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 SP/REG_DWORD/0
3.0 Service Pack 1 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 SP/REG_DWORD/1
3.0 Service Pack 2 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 SP/REG_DWORD/2
2.0 Вихідний випуск HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 SP/REG_DWORD/0
2.0 Service Pack 1 HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 SP/REG_DWORD/1
2.0 Service Pack 2 HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 SP/REG_DWORD/2
1.1 (у 32-розрядних ОС) Вихідний випуск HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 Install / REG_DWORD / 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 SP/REG_DWORD/0
1.1 (у 32-розрядних ОС) Service Pack 1 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 Install / REG_DWORD / 1
1.1 (у 64-розрядних ОС) Вихідний випуск HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 Install / REG_DWORD / 1
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 SP/REG_DWORD/0
1.1 (у 64-розрядних ОС) Service Pack 1 HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 Install / REG_DWORD / 1
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322 SP/REG_DWORD/1
1.0 (крім Windows XP Media Center та Tablet PC) Вихідний випуск HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\ Version/REG_SZ/1.0.3705.0
1.0 (крім Windows XP Media Center та Tablet PC) Service Pack 1 HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\ Version / REG_SZ / 1.0.3705.1
1.0 (крім Windows XP Media Center та Tablet PC) Service Pack 2 HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\ Version/REG_SZ/1.0.3705.2
1.0 (крім Windows XP Media Center та Tablet PC) Service Pack 3 HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\ Version/REG_SZ/1.0.3705.3
1.0 (постачається з Windows XP Media Center 2002/2004 та Tablet PC 2004) Service Pack 2 HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\ Version/REG_SZ/1.0.3705.2
1.0 (постачається з Windows XP Media Center 2005 та Tablet PC 2005) Service Pack 3 HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\ Version/REG_SZ/1.0.3705.3

Як дізнатися встановлені версії .NET Framework у Windows?

У 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 і вище).

Значення DWORD параметра ReleaseВерсія .NET Framework
378389.NET Framework 4.5
378675NET 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.2393295.NET Framework 4.6 на Windows 10393297.NET Framework 4.6394254.NET Framework 4.6.1 на Windows 10 1511394271.NET Framework 4.6.1394802

Як дізнатися версію .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.

Практичний посібник. Визначення встановлених версій платформи .NET Framework

Ця стаття відноситься до .NET Framework.Щоб визначити, які пакети SDK та середовища виконання .NET Core та .NET 5+ встановлені, див. Як перевірити, що .NET вже встановлено.

Ви можете встановити і запустити кілька версій .NET Framework платформи на комп'ютері.

  • Якщо ви хочете перевірити версії на своєму комп'ютері, найпростіше >панель управління Programs>Програми та компоненти або параметри у розділі> "Встановлені додатки". Ви також можете використовувати ці засоби, які підтримує спільнота.
  • Якщо ви розробник програми, вам може знадобитися знати, які версії платформи .NET Framework встановлені на комп'ютері користувача програми. Реєстр містить список версій платформи .NET Framework, встановлених на комп'ютері. Ви також можете запросити RuntimeInformation.FrameworkDescription властивість.
  • Щоб знайти версію СЕРЕДОВИЩА CLR окремо, див. "Пошук версій СЕРЕДОВИЩА CLR".

Платформа .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 див. у статті "Практичний посібник. Визначення встановлених оновлень" платформа .NET Framework оновлень".

Кошти, що підтримуються спільнотою

Кошти, що підтримуються спільнотою, допомагають визначити, які версії .NET Framework встановлені:

Властивість RuntimeInformation.FrameworkDescription

Щоб програмно вимагати версію програми .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. Ключі відрізняються для .NET Framework 1.0-4.0 і .NET Framework 4.5+. Для перевірки реєстру можна використати редактор реєстру, PowerShell або код.

платформа .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

Використання редактора реєстру

  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, шляхи реєстру будуть відрізнятися від вказаних раніше. 32-розрядний реєстр доступний у підрозділі 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.

Додайте директиву 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 .NET Framework Version: "); > else < Console.WriteLine(".NET Framework Version 4.5 або 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"; // Цей код не повинен execute. A non-null release key should mean // that 4.5 or later is installed. return "No 4.5 або останньої версії виявленої"; >
Private Sub Get45PlusFromRegistry() Const subkey As String = "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" Using ndpKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry3Key). IsNot Nothing AndAlso ndpKey.GetValue("Release") IsNot Nothing Then Console.WriteLine($".NET Framework Version: ") Else Console.WriteLine(".NET Framework Version 4.5 або останній не налаштований.") Sub ' Checking the version using >= enables forward compatibility.Приватна функція CheckFor45PlusVersion(releaseKey As Integer) As String If releaseKey >= 533320 Then Return "4.8.1 або останній" ElseIf releaseKey >= 528040 Then Return "4.8" ElseIf release "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" Else "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" Else "4.5" End If ' Цей код повинен невідомий execute. A non-null release key should mean ' that 4.5 or later is installed. Return "No 4.5 або останньої версії встановлено" 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 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

У цьому прикладі застосовуються рекомендації для перевірки версії:

  • Він перевіряєбільше чи значення запису випускуабо одно значення відомих значень випуску.
  • Перевірка виконується з останньої до ранньої версії.

платформа .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, шляхи реєстру будуть відрізнятися від зазначених раніше. 32-розрядний реєстр доступний у підрозділі 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 відрізняється від інших.

Використання редактора реєстру (раніші версії платформи)

  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, шляхи реєстру будуть відрізнятися від зазначених раніше. 32-розрядний реєстр доступний у підрозділі 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 Registry Key for .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 інформація. 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 у 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 registru key for .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") ElseIf 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 ("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") ElseIf 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' | | 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-ItemProperty -Path "Registry::$_").Version) >if ($name -and ($_.Property -contains 'SP')) < $sp = $((Get-ItemProperty -Path "Registry::$_").SP) >if ($_.Property -contains 'Install') < $ install = $((Get-ItemProperty -Path "Registry::$_").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).

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

Властивість Environment.Version

Для .NET Framework 4.5 і пізніших версій не слід використовувати властивість Environment.Version для визначення версії середовища CLR.

  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

Див. також

Схожі статті

  • Як перевірити чи встановлено Апач
  • Як перевірити чи вмирає жорсткий диск
  • Як перевірити айфон 11 при купівлі бу
  • Як перевірити рівень вітаміну А в організмі
  • Як перевірити ультразвукову пральну машинку на справність
  • Як перевірити microSD
  • Як перевірити втулки рульової рейки
  • Як перевірити що вмирає відеокарта
  • Недавні статті

  • Як бродить зернова брага
  • Що робити якщо не засмагаєш на сонці чому засмага погано лягає на шкіру або перестає прилипати
  • Як швидко зняти гель лак без апарату
  • Як робиться Каті голови
  • Яка гребінець краще для об'єму
  • Чим роблять м'яку покрівлю
  • Чи можна залишати крем для обличчя на ніч
  • Де знаходиться датчик селектора
  • географія нашої діяльності
    вулиця Драгоманова, 27
    вул. Курчатова 1Б
    вул. Міцкевича 130
    вул. Лабунського, 1
    вул. Макарова-Пржевальського
    вул. Толстого 10
    вул. Грушевського 28
    вул. Перший промінь (Черняхівського)
    напишіть нам

    сообщение успешно отправлено
    x