Rejestr jest oficjalnym sposobem wykrywania, czy zainstalowana jest konkretna wersja Framework.
Które klucze rejestru są potrzebne, zmieniaj się w zależności od wersji Framework, której szukasz:
Klucz rejestru w wersji 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 Profil klienta HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Install
4.0 Pełny profil HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Install
Na ogół szukasz:
"Install"=dword:00000001
z wyjątkiem .NET 1.0, gdzie wartością jest string ( REG_SZ
) zamiast number ( REG_DWORD
).
Określanie poziomu dodatku Service Pack odbywa się w podobny sposób:
Klucz rejestru w wersji Framework
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Wersja
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Wersja
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 Profil klienta HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Servicing
4.0 Pełny profil HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Servicing
[1] Windows Media Center lub Windows XP Tablet Edition
Jak widać, określanie poziomu SP dla zmian .NET 1.0 zmienia się, jeśli używasz Windows Media Center lub Windows XP Tablet Edition. Ponownie .NET 1.0 używa wartości ciągu, podczas gdy wszystkie inne używają DWORD.
W przypadku .NET 1.0 wartość ciągu w jednym z tych kluczy ma format #, #, ####, #. Ostatni # to poziom dodatku Service Pack.
Chociaż nie prosiłem o to wyraźnie, jeśli chcesz znać dokładny numer wersji środowiska, możesz użyć tych kluczy rejestru:
Klucz rejestru w wersji Framework
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Wersja
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Wersja
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 \ Version
2.0 [3] HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ Przyrost
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 Profil klienta HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
4.0 Pełny profil HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
[1] Windows Media Center lub Windows XP Tablet Edition
[2] .NET 2.0 SP1
[3] .NET 2.0 Original Release (RTM)
Ponownie .NET 1.0 używa wartości ciągu, podczas gdy wszystkie inne używają DWORD.
Dodatkowe uwagi
dla .NET 1.0 wartość ciągu w jednym z tych kluczy ma format #,#,####,#
. #,#,####
Część napisu jest wersja Framework.
w przypadku .NET 1.1 używamy samej nazwy klucza rejestru, która reprezentuje numer wersji.
Na koniec, jeśli spojrzysz na zależności, .NET 3.0 dodaje dodatkową funkcjonalność do .NET 2.0, więc zarówno .NET 2.0, jak i .NET 3.0 muszą ewaluować jako zainstalowane, aby poprawnie powiedzieć, że .NET 3.0 jest zainstalowany. Podobnie .NET 3.5 dodaje dodatkowe funkcje do .NET 2.0 i .NET 3.0, więc .NET 2.0, .NET 3.0 i .NET 3. powinny ocenić, czy są zainstalowane, aby poprawnie powiedzieć, że .NET 3.5 jest zainstalowany.
.NET 4.0 instaluje nową wersję CLR (CLR wersja 4.0), która może działać równolegle z CLR 2.0.
Aktualizacja dla .NET 4.5
W v4.5
rejestrze .NET 4.5 nie będzie klucza. Zamiast tego musisz sprawdzić, czy HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full
klucz zawiera wartość o nazwie Release
. Jeśli ta wartość jest obecna, to .NET 4.5 jest zainstalowany, w przeciwnym razie nie będzie. Więcej informacji można znaleźć tutaj i tutaj .