287 votes

Comment détecter les versions et les Service Packs .NET Framework installés?

Une question similaire a été posée ici , mais était spécifique à .NET 3.5. Plus précisément, je cherche ce qui suit:

  1. Quelle est la méthode correcte pour déterminer quelles versions .NET Framework et service packs sont installés?
  2. Y a-t-il une liste de clés de registre pouvant être utilisées?
  3. Y a-t-il des dépendances entre les versions de Framework?

364voto

Scott Dorman Points 25000

Le registre est l' officiel de la façon de détecter si une version spécifique du Framework est installé.

enter image description here

Les clés du registre qui sont nécessaires changer en fonction de la version de Framework, vous êtes à la recherche pour:

Cadre De La Version De La Clé De Registre
------------------------------------------------------------------------------------------
1.0 HKLM\Software\Microsoft\.NETFramework\Policy\v1.0\3705 
1.1 HKLM\Software\Microsoft\NET Framework Setup\NPD\v1.1.4322\Installer 
2.0 HKLM\Software\Microsoft\NET Framework Setup\NPD\v2.0.50727\Installer 
3.0 HKLM\Software\Microsoft\NET Framework Setup\NPD\v3.0\Setup\InstallSuccess 
3.5 HKLM\Software\Microsoft\NET Framework Setup\NPD\v3.5\Installer 
4.0 Client Profile HKLM\Software\Microsoft\NET Framework Setup\NPD\v4\Client\Installer
4.0 Profil Complet HKLM\Software\Microsoft\NET Framework Setup\NPD\v4\Pleine\Installer

Généralement vous êtes à la recherche pour:

"Install"=dword:00000001

sauf pour .NET 1.0, où la valeur est une chaîne de caractères (REG_SZ) plutôt que d'un nombre (REG_DWORD).

Déterminer le niveau de service pack suit un modèle semblable:

Cadre De La Version De La Clé De Registre
------------------------------------------------------------------------------------------
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\NPD\v1.1.4322\SP 
2.0 HKLM\Software\Microsoft\NET Framework Setup\NPD\v2.0.50727\SP 
3.0 HKLM\Software\Microsoft\NET Framework Setup\NPD\v3.0\SP 
3.5 HKLM\Software\Microsoft\NET Framework Setup\NPD\v3.5\SP 
4.0 Client Profile HKLM\Software\Microsoft\NET Framework Setup\NPD\v4\Client\Servicing
4.0 Profil Complet HKLM\Software\Microsoft\NET Framework Setup\NPD\v4\Pleine\Servicing

[1] de Windows Media Center ou Windows XP Tablet Edition

Comme vous pouvez le voir, la détermination du niveau SP .NET 1.0 modifications si vous êtes en cours d'exécution sur Windows Media Center ou Windows XP Tablet Edition. De nouveau, .NET 1.0 utilise une chaîne de valeur, tandis que tous les autres utilisent un DWORD.

Pour .NET 1.0 de la chaîne de valeur à l'une de ces touches est un format de #,#,####,#. Le dernier # est le niveau de Service Pack.

Alors que je n'ai pas explicitement demandé, si vous souhaitez connaître le numéro exact de la version du Framework que vous utiliseriez ces clés de registre:

Cadre De La Version De La Clé De Registre
------------------------------------------------------------------------------------------
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\NPD\v1.1.4322 
2.0[2] HKLM\Software\Microsoft\NET Framework Setup\NPD\v2.0.50727\Version 
2.0[3] HKLM\Software\Microsoft\NET Framework Setup\NPD\v2.0.50727\Incrément
3.0 HKLM\Software\Microsoft\NET Framework Setup\NPD\v3.0\Version 
3.5 HKLM\Software\Microsoft\NET Framework Setup\NPD\v3.5\Version 
4.0 Client Profile HKLM\Software\Microsoft\NET Framework Setup\NPD\v4\Version 
4.0 Profil Complet HKLM\Software\Microsoft\NET Framework Setup\NPD\v4\Version 

[1] de Windows Media Center ou Windows XP Tablet Edition
[2] .NET 2.0 SP1
[3] .NET 2.0 Version d'Origine (RTM)

De nouveau, .NET 1.0 utilise une chaîne de valeur, tandis que tous les autres utilisent un DWORD.

Notes Supplémentaires

  • pour .NET 1.0 de la chaîne de valeur à l'une de ces touches a un format d' #,#,####,#. L' #,#,#### partie de la chaîne est la version de Framework.

  • pour .NET 1.1, nous utilisons le nom de la clé de registre lui-même, qui représente le numéro de version.

  • Enfin, si vous regardez les dépendances .NET 3.0 ajoute des fonctionnalités supplémentaires .NET 2.0 pour deux .NET 2.0 et .NET 3.0 doit à la fois evaulate comme étant installé correctement le dire .NET 3.0 est installé. De même, l' .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. devrait évaluer tous d'être installé correctement le dire .NET 3.5 est installé.

  • .NET 4.0 installe une nouvelle version du common language runtime (CLR version 4.0) qui peut s'exécuter côte à côte avec le CLR 2.0.

Mise à jour pour .NET 4.5

Il n'y aura pas un v4.5 clé dans le registre si .NET 4.5 est installé. Au lieu de cela, vous devez vérifier si l' 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.

17voto

anon Points 159

Il y a un responsable de Microsoft, la réponse à cette question, à l'article de base de connaissances:

ID d'Article: 318785 - Dernière Révision: novembre 7, 2008 - Révision: 20.1 Comment déterminer quelles versions de l' .NET Framework est installé et si des service packs ont été appliquées

Malheureusement, il ne fonctionne pas, parce que le mscorlib.dll version 2.0 répertoire a une version 2.0, et il n'y a pas de mscorlib.dll la version dans la version 3.0 ou 3.5 répertoires, même si 3.5 SP1 est installé ... pourquoi l'officiel de la réponse de Microsoft être si mal informé?

16voto

midspace Points 595

Le Framework 4 bêta installe une clé de Registre différents.

8voto

Franci Penov Points 45358

Énumérer les sous-clés de . Chaque sous-clé est une version de [.NET](http://en.wikipedia.org/wiki/.NET_Framework) . Il doit disposer de valeur si elle est présente sur la machine, une valeur de SP qui indique que le service pack et une `` valeur si elle a été installée à l’aide d’un fichier MSI. (.NET 2.0 sur Windows Vista n’a par exemple, le dernier d'entre eux car il fait partie du système d’exploitation.)

5voto

abhishek mehta Points 51

Pour un OS 64 bits, le chemin est :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X