Реєстр - це офіційний спосіб виявити, чи встановлена конкретна версія Framework.
Які ключі реєстру потрібно змінити залежно від версії Framework, яку ви шукаєте:
Ключ реєстру версії рамки
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ .NETFramework \ Policy \ v1.0 \ 3705
1.1 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v1.1.4322 \ Install
2.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ Install
3.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Setup \ InstallSuccess
3.5 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ Install
4.0 Профіль клієнта HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Install
4.0 Повний профіль HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Install
Як правило, ви шукаєте:
"Install"=dword:00000001
за винятком .NET 1.0, де значенням є рядок ( REG_SZ
), а не число ( REG_DWORD
).
Визначення рівня сервісного пакету відбувається за аналогічною схемою:
Ключ реєстру версії рамки
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Установлені компоненти \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Версія
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Установлені компоненти \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Версія
1.1 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v1.1.4322 \ SP
2.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ SP
3.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ SP
3.5 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ SP
4.0 Профіль клієнта HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Servising
4.0 Повний профіль HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Обслуговування
[1] Windows Media Center або Windows XP Tablet Edition
Як бачите, визначення рівня SP для змін .NET 1.0, якщо ви працюєте в Windows Media Center або Windows XP Tablet Edition. Знову ж таки, .NET 1.0 використовує значення рядка, тоді як всі інші використовують DWORD.
Для .NET 1.0 значення рядка на будь-якій з цих клавіш має формат #, #, ####, #. Останній # - рівень пакету послуг.
Хоча я цього прямо не просив, якщо ви хочете знати точний номер версії Framework, ви використовуєте ці ключі реєстру:
Ключ реєстру версії рамки
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Установлені компоненти \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Версія
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Установлені компоненти \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Версія
1.1 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v1.1.4322
2.0 [2] HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ Версія
2.0 [3] HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ Increment
3.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Version
3.5 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ Version
4.0 Профіль клієнта HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
4.0 Повний профіль HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
[1] Windows Media Center або Windows XP Tablet Edition
[2] .NET 2.0 SP1
[3] .NET 2.0 Оригінальний випуск (RTM)
Знову ж таки, .NET 1.0 використовує значення рядка, тоді як всі інші використовують DWORD.
додаткові нотатки
для .NET 1.0 значення рядка на будь-якій з цих клавіш має формат #,#,####,#
. #,#,####
Частина рядка є Framework версії.
для .NET 1.1 ми використовуємо назву самого ключа реєстру, який представляє номер версії.
Нарешті, якщо ви подивитеся на залежності, .NET 3.0 додає додаткову функціональність до .NET 2.0, тому і .NET 2.0, і .NET 3.0 повинні обидва евакуюватися як встановлені, щоб правильно сказати, що встановлено .NET 3.0. Так само .NET 3.5 додає додаткову функціональність до .NET 2.0 та .NET 3.0, тому .NET 2.0, .NET 3.0 та .NET 3. всі повинні оцінювати, що вони встановлені, щоб правильно сказати, що встановлено .NET 3.5.
.NET 4.0 встановлює нову версію CLR (CLR версія 4.0), яка може працювати поруч із CLR 2.0.
Оновлення для .NET 4.5
У v4.5
реєстрі не буде ключа, якщо встановлено .NET 4.5. Натомість ви повинні перевірити, чи HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full
містить ключ значення, яке називається Release
. Якщо це значення є, встановлено .NET 4.5, інакше це не так. Детальніше можна ознайомитись тут і тут .