Comment trouver la version .NET?

258

Comment savoir quelle version de .NET est installée?

Je cherche quelque chose d'aussi simple que "java -version" que je peux taper à l'invite de commande et qui me dit la ou les versions actuelles installées.

Je ferais mieux d'ajouter que Visual Studio peut ne pas être installé - c'est généralement quelque chose que je veux savoir sur une machine cliente.

sepang
la source
2
Allez exécuter et exécutez cette commande: wmic / namespace: \\ root \ cimv2 path win32_product où "nom comme '%%. NET %%'" obtient la version
HENG Vongkol

Réponses:

250

Tapez simplement l'une des commandes ci-dessous pour vous donner la dernière version dans la première ligne.

1. CSC
2. GACUTIL /l ?
3. CLRVER

Vous ne pouvez les exécuter à partir de l'invite de commande de Visual Studio que si Visual Studio est installé, ou bien si vous disposez du SDK du framework .NET, puis de l'invite de commande du SDK.

4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

La dernière commande (5) répertorie toutes les versions (sauf 4.5) de .NET installées, la plus récente en premier .
Vous devez exécuter la 4e commande pour voir si .NET 4.5 est installé.

Trois autres options de l'invite de commandes PowerShell sont données ci-dessous.

6.   [environment]::Version
7.   $PSVersionTable.CLRVersion
8.   gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 |
     where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release

La dernière commande (8) vous donnera toutes les versions, y compris .NET 4.5.

Binoj Antony
la source
6
'CSC' ne fonctionnera qu'à partir de l'invite de commandes de Visual Studio (par défaut). Il ne vous donnera également que la version maximale du framework .NET que la version des cibles du compilateur. - Si vous avez installé VS2005 et VS2008, les différentes versions de CSC rapporteront différentes versions.
Matt Lacey
15
cscrenvoie la version du compilateur C #, pas la version du .NET Framework.
Timwi
4
la dernière commande n'a pas renvoyé la version 4.5 même si je pense l'avoir installée. La réponse à stackoverflow.com/questions/3487265/… l'a incluse.
lmsurprenant
2
La dernière commande n'affiche pas la dernière version. Nous pouvons rechercher la version dans appwiz.cpl ou la commande «wmic product» est également utile. windows-commandline.com/find-net-version-on-your-computer
Giri
11
Vive le numéro 8!
Lionet Chen
330

Il existe un moyen plus simple d'obtenir la version exacte de la version .NET installée sur votre ordinateur à partir d'une invite cmd. Suivez simplement les instructions suivantes;

  1. Ouvrez l'invite de commande (c'est-à-dire Windows + R → tapez "cmd").
  2. Tapez la commande suivante, le tout sur une seule ligne:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

(Cela répertoriera toutes les versions .NET.)

  1. Si vous souhaitez vérifier la dernière version de .NET 4.
  2. Tapez l'instruction suivante, sur une seule ligne:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version

Veuillez trouver l'image ci-dessous pour voir comment elle est présentée.

Entrez la description de l'image ici

AnandShanbhag
la source
4
a trouvé que c'était la plus simple et la plus précise (avec le "* \ v4 \ Full" à la fin) car elle obtient également la version mineure avec une seule commande simple.
Ignas Vyšnia
1
Agréable. Je voulais quelque chose qui fonctionnerait sur le PC d'un utilisateur et c'est tout. Merci!
Kelly
6
Bien mais ne montre pas les frameworks 4.5, 4.6 et 4.7 qui sont installés sur ma machine Windows 7 :(
Zeek2
pas tout à fait exact; Je regarde sous Panneau de configuration> Programmes et fonctionnalités, et il n'y a aucun signe de .NET .; cependant, j'exécute votre commande et elle me donne la sortie HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0. Probablement, .NET a déjà été installé sur ma machine, n'a pas été désinstallé, mais le registre n'a pas été nettoyé
Newton fan 01
30

Avant d'accéder à une invite de commande, veuillez suivre ces étapes ...

Ouvrez Poste de travail → double-cliquez sur le lecteur " C: " → double-cliquez sur " Windows " → double-cliquez sur " Microsoft.NET " → double-cliquez sur " Framework " → À l'intérieur de ce dossier, il y aura des dossiers comme "v1.0.3705" et / ou "v2.0.50727" et / ou "v3.5" et / ou "v4.0.30319".

Votre dernière version .NET se trouverait dans le dossier le plus élevé, donc si la version v4.0.30319 est disponible, elle contiendrait votre dernier framework .NET. Cependant, la v4.0.30319 ne signifie pas que vous disposez de la version 4.0 du framework .NET. Le v4.0.30319 est votre version du compilateur Visual C #, par conséquent, pour trouver la version du framework .NET, procédez comme suit.

Accédez à une invite de commande et suivez ce chemin:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (ou quel que soit le dossier avec le numéro de v le plus élevé)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> csc.exe

Production:

Microsoft (R) Visual C # Compiler version 4.0.30319.17929 pour Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. Tous les droits sont réservés.

Exemple ci-dessous:

Entrez la description de l'image ici

Sunimal Kaluarachchi
la source
2
Assez bien, mais la sortie est différente au moins sur mon serveur - Aucun message "pour" n'était inclus: lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAALQ/…
Nenotlep
2
pour changer le type de répertoire : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319puis tapez csc.exe, espérons aider quelqu'un.
shaijut
1
Il est généralement efficace lorsque vous vous connectez avec un compte utilisateur limité.
Rzassar
10

Cette réponse s'applique uniquement à .NET Core!

Si dotnet --versionvous saisissez le terminal de votre choix, la version du SDK .NET Core utilisée sera imprimée.

En savoir plus sur la dotnetcommande ici .

FelixAVeras
la source
15
Il s'applique uniquement à .NET Core.
Sunil
9

Pour la version du framework qui est installée, elle varie en fonction des Service Packs et des correctifs que vous avez installés. Jetez un œil à cette page MSDN pour plus de détails. Il suggère de chercher %systemroot%\Microsoft.NET\Frameworkpour obtenir la version.

Environment.Version vous donnera par programme la version du CLR.

Notez qu'il s'agit de la version du CLR, et pas nécessairement la même que la dernière version du framework que vous avez installé (.NET 3.0 et 3.5 utilisent tous les deux la v2 du CLR).

adrianbanks
la source
Environment.Version semble vous donner la version de l'application. Dis, à partir de LinqPad, je veux trouver la version .NET avec laquelle il fonctionne et cela ne me donne pas la version .NET, mais la version LinqPad
Naomi
@Naomi: non, ça donne la version du CLR. De la documentation: "Obtient un objet Version qui décrit les numéros majeur, mineur, de génération et de révision du runtime de langage commun." .
adrianbanks
Qu'est-ce que je suis censé voir dans cet objet? Je vois 2.0.50727.5472 2 Minor 0 Build 50727 Révision 5472 MajorRevision 0 MinorRevision 5472 qui ne ressemble pas à l'exécution de la version CLR pour moi
Naomi
J'ai chargé la dernière version de LinqPad et maintenant j'obtiens 4.0.30319.18052 pour la version. La version précédente ciblait la version .NET 3.5. Donc, je suis encore un peu confus - montre-t-il vraiment la version CLR?
Naomi
1
@Naomi: Oui, cela montre la version CLR. 2.0.50727.5472 est la version du .Net 2.0 CLR, qui est également utilisée pour .Net 3.0 et 3.5. 4.0.30319.18052 est .Net 4.0, qui a un numéro de version différent.
adrianbanks
8

MSDN le détaille très bien ici sur la façon de le vérifier à partir du Registre:

Pour rechercher les versions de .NET Framework en affichant le registre (.NET Framework 1-4)

  1. Dans le menu Démarrer, choisissez Exécuter.
  2. Dans la zone Ouvrir, entrez regedit.exe. Vous devez disposer des informations d'identification administratives pour exécuter regedit.exe.
  3. Dans l'Éditeur du Registre, ouvrez la sous-clé suivante:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP

Les versions installées sont répertoriées sous la sous-clé NDP. Le numéro de version est stocké dans l'entrée Version. Pour le .NET Framework 4, l'entrée de version se trouve sous la sous-clé Client ou Full (sous NDP), ou sous les deux sous-clés.

Pour rechercher des versions de .NET Framework en affichant le registre (.NET Framework 4.5 et versions ultérieures)

  1. Dans le menu Démarrer, choisissez Exécuter.
  2. Dans la zone Ouvrir, entrez regedit.exe. Vous devez disposer des informations d'identification administratives pour exécuter regedit.exe.
  3. Dans l'Éditeur du Registre, ouvrez la sous-clé suivante:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full

Notez que le chemin d'accès à la sous-clé complète inclut la sous-clé Net Framework plutôt que .NET Framework

Recherchez une valeur DWORD nommée Release. L'existence de la version DWORD indique que le .NET Framework 4.5 ou plus récent a été installé sur cet ordinateur.

entrez la description de l'image ici

Remarque : La dernière ligne de l'instantané ci-dessus qui a obtenu des lectures écrêtées On all other OS versions: 461310. J'ai fait de mon mieux pour éviter que les informations ne soient écrêtées lors de la capture d'écran, mais le tableau était bien trop grand.

RBT
la source
6

Si vous ouvrez une invite de commande et tapez les deux commandes suivantes, toutes les versions de framework installées sur la machine actuelle seront répertoriées (chacune est stockée dans un répertoire distinct de ce répertoire).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D
Michael Arnell
la source
8
Non recommandé car cela peut être trompeur. Si vous avez mis à niveau 4.0 => 4.5.2, le répertoire peut afficher uniquement v4.0.30319. Voir l'exemple de Sunimal Kaluarachchi.
Dinah
6

Tapez simplement ce qui suit dans la ligne de commande:

dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Votre version dotnet apparaîtra comme le numéro le plus élevé.

Steve Junior
la source
1
Il affiche toutes les versions jusqu'à 4.0, mais pas 4.5 par exemple.
pinowthebird
4

Pour obtenir simplement la ou les versions installées sur la ligne de commande, je recommande d'utiliser net-version .

  • C'est juste un seul binaire .
  • Il utilise les directives fournies par Microsoft pour obtenir des informations sur la version.
  • Il ne nécessite pas l'installation du SDK.
  • Ou l'invite de commande Visual Studio.
  • Il ne vous oblige pas à utiliser regedit et à rechercher les clés de registre vous-même. Vous pouvez même diriger la sortie dans un outil de ligne de commande si vous en avez besoin.

Le code source est disponible sur github.com

Divulgation complète: j'ai créé cet outil moi-même par frustration.

Dan Esparza
la source
Si cet ensemble (incomplet) d'informations sur la version vous convient, plus de pouvoir pour vous.
Dan Esparza
@Shiva Vous indiquez que vous pensez que cette commande montre tout, et je ne suis respectueusement pas d'accord avec vous. Veuillez consulter le lien avec les instructions fournies par Microsoft. Par exemple: votre requête ne montre pas que j'ai .NET 4.6.1 installé. En outre, cela indique que j'ai installé «CDF», qui n'est pas une version du framework .NET.
Dan Esparza
4

Si vous le faites assez fréquemment (comme j'ai tendance à le faire), vous pouvez créer un raccourci sur votre bureau comme suit:

  1. Faites un clic droit sur le bureau et sélectionnez NouveauRaccourci .
  2. Dans le champ emplacement, collez cette chaîne: powershell.exe -noexit -command "gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release"(ceci provient du post de Binoj Antony ).
  3. Cliquez sur Suivant . Donnez un nom au raccourci et cliquez sur Terminer .

(REMARQUE: je ne sais pas si cela fonctionne pour la version 4.5, mais je peux confirmer que cela fonctionne pour la version 4.6 et les versions antérieures à la version 4.5.)

kmote
la source
Les versions 1.0 et 1.1 n'apparaissent pas dans la clé d' installation de NET Framework , bien qu'elles existent dans le dossier% systemroot% \ Microsoft.NET \ Framework \.
samis
4

Voici le script Power Shell que j'ai utilisé en prenant la référence de:

https://stackoverflow.com/a/3495491/148657

$Lookup = @{
    378389 = [version]'4.5'
    378675 = [version]'4.5.1'
    378758 = [version]'4.5.1'
    379893 = [version]'4.5.2'
    393295 = [version]'4.6'
    393297 = [version]'4.6'
    394254 = [version]'4.6.1'
    394271 = [version]'4.6.1'
    394802 = [version]'4.6.2'
    394806 = [version]'4.6.2'
    460798 = [version]'4.7'
    460805 = [version]'4.7'
    461308 = [version]'4.7.1'
    461310 = [version]'4.7.1'
    461808 = [version]'4.7.2'
    461814 = [version]'4.7.2'
    528040 = [version]'4.8'
    528049 = [version]'4.8'
}

# For One True framework (latest .NET 4x), change the Where-Oject match 
# to PSChildName -eq "Full":
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
  Get-ItemProperty -name Version, Release -EA 0 |
  Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
  Select-Object @{name = ".NET Framework"; expression = {$_.PSChildName}}, 
@{name = "Product"; expression = {$Lookup[$_.Release]}}, 
Version, Release

Le script ci-dessus utilise le registre et nous donne le numéro de mise à jour Windows ainsi que .Net Framework installé sur une machine.

Référence: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- interrogation-du-registre-dans-code-net-framework-45-et-plus tard

Voici les résultats pour le même lors de l'exécution de ce script sur deux machines différentes

  1. Où .NET 4.7.2 était déjà installé:

entrez la description de l'image ici

  1. Où .NET 4.7.2 n'était pas installé:

entrez la description de l'image ici

Raghav
la source
3

Mon dieu, tant de mal à trouver la version du framework .net installé?

Windows> Rechercher> Visual Studio Installer> pour la version installée de VS, appuyez sur Plus> Modifier> Composants individuels et voyez-le ici:

entrez la description de l'image ici

pixel
la source
2

Essayez .NET Checkerpar Scott Hanselman.

AI
la source
1
Une excellente suggestion. L'OP a cependant spécifiquement indiqué un outil de ligne de commande.
Dan Esparza
1

clrverest excellent. Il suffit de l'exécuter dans l'invite .NET et il répertoriera toutes les versions de framework disponibles.

James Poulose
la source
3
Cet outil nécessite non seulement le framework .NET pour être installé, mais Visual Studio. L'OP a indiqué que Visual Studio n'était peut-être pas installé.
Dan Esparza
Et il ne montre pas toutes (ou même la plupart) des versions. Pour mon PC Win7, seules les versions V2.0 et 4.0 sont affichées, mais certaines des autres méthodes ci-dessus affichent également les versions: 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 et 4.7.
Zeek2
1
@Zeek clrveraffiche le (s) runtime (s) .net installé (s) , qui peuvent être partagés entre les versions .net . Voir Comment: déterminer les versions de .NET Framework installées et identifier la version .NET que vous exécutez (2.0, 4.5, 4.5.1 ou 4.5.2)
samis
1

Pour toute personne exécutant Windows 10 1607 et recherchant .net 4.7 . Ignorez tout ce qui précède.

Ce n'est pas dans le Registre , le dossier C: \ Windows \ Microsoft.NET ou la liste des programmes installés ou l'affichage WMIC de cette même liste.

Recherchez les «mises à jour installées» KB3186568.

skrie
la source
1
C'est dans le registre, comme documenté par Microsoft . HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- la Releasevaleur sera 460798de 4,7 sur W10 1607.
Richard Deeming
Ce n'est pas. La touche "Full" n'existe même pas.
skrie
1
C'est le cas, et ça le fait. J'exécute 1607, et je regarde la Fullclé en ce moment!
Richard Deeming du
0

Si vous développez une application .Net (par exemple une application web), vous pouvez créer 1 ligne de code d'erreur (comme invoquer un nom de fonction incorrect) et recharger votre page, la version .Net s'afficheraentrez la description de l'image ici

Sy C Dang
la source
Probablement pas la manière la plus propre, mais en effet une option que j'ai totalement oubliée. Un simple GACUTIL /l ?dans votre PowerShell (développeur) donne tout de même.
B - rian
-1

Il existe un moyen plus simple d'obtenir la version exacte de la version .NET installée sur votre ordinateur à partir d'une invite cmd. Suivez simplement les instructions suivantes;

Ouvrez l'invite de commande (c'est-à-dire Windows + R → tapez "cmd") et tapez la commande suivante, le tout sur une seule ligne:% windir% \ Microsoft.NET \ FrameWork, puis accédez au répertoire avec le dernier numéro de version.

Reportez-vous à http://dotnettec.com/check-dot-net-framework-version/

Julia
la source
'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
J'obtiens