Le registre est le moyen officiel de détecter si une version spécifique du Framework est installée.
Quelles clés de registre sont nécessaires en fonction de la version du Framework que vous recherchez:
Clé de Registre de version de 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 client HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Install
4.0 Profil complet HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Install
En général, vous recherchez:
"Install"=dword:00000001
sauf pour .NET 1.0, où la valeur est une chaîne ( REG_SZ
) plutôt qu'un nombre ( REG_DWORD
).
La détermination du niveau du Service Pack suit un modèle similaire:
Clé de Registre de version de Framework
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Version
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Version
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 client HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Servicing
4.0 Profil complet HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Servicing
[1] Windows Media Center ou Windows XP Tablet Edition
Comme vous pouvez le voir, déterminer le niveau de SP pour .NET 1.0 change si vous exécutez sur Windows Media Center ou Windows XP Tablet Edition. Encore une fois, .NET 1.0 utilise une valeur de chaîne tandis que tous les autres utilisent un DWORD.
Pour .NET 1.0, la valeur de chaîne à l'une de ces clés a le format #, #, ####, #. Le dernier # est le niveau du Service Pack.
Bien que je ne l'ai pas explicitement demandé, si vous souhaitez connaître le numéro de version exact du Framework, vous utiliserez ces clés de registre:
Clé de Registre de version de Framework
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Version
1.0 [1] HKLM \ Software \ Microsoft \ Active Setup \ Installed Components \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Version
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 Profil client HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
4.0 Profil complet HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
[1] Windows Media Center ou Windows XP Tablet Edition
[2] .NET 2.0 SP1
[3] .NET 2.0 Original Release (RTM)
Encore une fois, .NET 1.0 utilise une valeur de chaîne tandis que tous les autres utilisent un DWORD.
Notes complémentaires
pour .NET 1.0, la valeur de chaîne à l'une de ces clés a un format de #,#,####,#
. La #,#,####
partie de la chaîne est la version Framework.
pour .NET 1.1, nous utilisons le nom de la clé de registre elle-même, qui représente le numéro de version.
Enfin, si vous examinez les dépendances, .NET 3.0 ajoute des fonctionnalités supplémentaires à .NET 2.0, donc .NET 2.0 et .NET 3.0 doivent tous deux être évalués comme étant installés pour indiquer correctement que .NET 3.0 est installé. De même, .NET 3.5 ajoute des fonctionnalités supplémentaires à .NET 2.0 et .NET 3.0, donc .NET 2.0, .NET 3.0 et .NET 3. doivent tous être évalués comme étant installés pour indiquer correctement que .NET 3.5 est installé.
.NET 4.0 installe une nouvelle version du CLR (CLR version 4.0) qui peut s'exécuter côte à côte avec CLR 2.0.
Mise à jour pour .NET 4.5
Il n'y aura pas de v4.5
clé dans le registre si .NET 4.5 est installé. Au lieu de cela, vous devez vérifier si la HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full
clé contient une valeur appelée Release
. Si cette valeur est présente, .NET 4.5 est installé, sinon il ne l'est pas. Plus de détails peuvent être trouvés ici et ici .