Il registro è il modo ufficiale per rilevare se è installata una versione specifica del Framework.
Quali chiavi di registro sono necessarie cambiano a seconda della versione di Framework che stai cercando:
Chiave di registro versione 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 Profilo client HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Installa
4.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ Profile \ NDP \ v4 \ Full \ Install completo
In generale stai cercando:
"Install"=dword:00000001
ad eccezione di .NET 1.0, dove il valore è una stringa ( REG_SZ
) anziché un numero (REG_DWORD
).
La determinazione del livello del service pack segue un modello simile:
Chiave di registro versione framework
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Installazione attiva \ Componenti installati \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Versione
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Componenti installati \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Versione
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 Profilo client HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Manutenzione
4.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ Profile \ NDP \ v4 \ Full \ Service completo
[1] Windows Media Center o Windows XP Tablet Edition
Come puoi vedere, determinare il livello SP per .NET 1.0 cambia se sei in esecuzione su Windows Media Center o Windows XP Tablet Edition. Ancora una volta, .NET 1.0 utilizza un valore di stringa mentre tutti gli altri utilizzano un DWORD.
Per .NET 1.0 il valore di stringa in una di queste chiavi ha un formato di #, #, ####, #. L'ultimo # è il livello del Service Pack.
Anche se non ho chiesto esplicitamente questo, se si desidera conoscere il numero esatto di versione del Framework, si utilizzerebbero queste chiavi di registro:
Chiave di registro versione framework
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Installazione attiva \ Componenti installati \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Versione
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Componenti installati \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Versione
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 \ 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 Profilo client HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Versione
4.0 Profilo completo HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Versione
[1] Windows Media Center o Windows XP Tablet Edition
[2] .NET 2.0 SP1
[3] .NET 2.0 Original Release (RTM)
Ancora una volta, .NET 1.0 utilizza un valore di stringa mentre tutti gli altri utilizzano un DWORD.
Note aggiuntive
per .NET 1.0 il valore di stringa in una di queste chiavi ha un formato di #,#,####,#
. La #,#,####
parte della stringa è la versione Framework.
per .NET 1.1, utilizziamo il nome della chiave di registro stessa, che rappresenta il numero di versione.
Infine, se si considerano le dipendenze, .NET 3.0 aggiunge funzionalità aggiuntive a .NET 2.0, pertanto sia .NET 2.0 che .NET 3.0 devono essere entrambi evacuati come installati per dire correttamente che .NET 3.0 è installato. Allo stesso modo, .NET 3.5 aggiunge funzionalità aggiuntive a .NET 2.0 e .NET 3.0, quindi .NET 2.0, .NET 3.0 e .NET 3. dovrebbero tutti valutare di essere installati per dire correttamente che .NET 3.5 è installato.
.NET 4.0 installa una nuova versione di CLR (CLR versione 4.0) che può essere eseguita fianco a fianco con CLR 2.0.
Aggiornamento per .NET 4.5
Non ci sarà una v4.5
chiave nel registro se è installato .NET 4.5. Invece devi controllare se la HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full
chiave contiene un valore chiamato Release
. Se questo valore è presente, .NET 4.5 è installato, altrimenti non lo è. Maggiori dettagli possono essere trovati qui e qui .