433 votes

Comment déterminer si .NET Core est installé

Je sais que pour les anciennes versions de .NET, vous pouvez déterminer si une version donnée est installée en suivant la procédure suivante

https://support.microsoft.com/en-us/kb/318785  

Existe-t-il une méthode officielle pour déterminer si .NET Core est installé ?

(Et je ne parle pas du SDK, je veux vérifier un serveur sans le SDK, pour déterminer s'il a DotNetCore.1.0.0-WindowsHosting.exe installé sur lui)

Je peux voir

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NET Cross-Platform Runtime Environment\.NET Framework 4.6\Win\v1-rc1 

avec un numéro de version de 1.0.11123.0 sur ma machine Windows 7, mais je ne vois pas les mêmes choses sur ma machine Windows 10.

4 votes

Bonne question. Tous ceux qui suivent .NET Core savent que les versions du Runtime et du SDK sont un sujet très confus.

1 votes

@Chiramisu, Toutes les vérifications ci-dessous ont fonctionné pour moi, mais à cause de certains détails d'implémentation non pertinents, j'ai opté pour la configuration de l'état désiré, et je l'ai utilisé pour m'assurer que l'hébergement du serveur Windows dnc est installé. (J'ai Ensure=Absent sur DotNetCore.1.0.0-WindowsServerHosting.exe et Ensure=Present sur DotnetCore.2.0.5-WindowsServerHosting.exe) (ou tout autre nom de fichier que vous pouvez trouver). DSC gère tout le désordre impliqué dans la vérification de l'installation/désinstallation du paquet approprié.

3 votes

Dotnet --list-sdks et dotnet --list-runtimes sont disponibles sur mon hôte avec 2.1.300-preview1-008174 comme version active.

525voto

Sean Points 568

Bonne question, et la réponse n'est pas simple. Il n'existe pas de commande "montrez-moi toutes les versions de .net core", mais il y a de l'espoir.

EDIT :

Je ne sais pas quand cela a été ajouté, mais la commande info inclut maintenant cette information dans sa sortie. Elle affiche les runtimes et SDK installés, ainsi que d'autres informations :

dotnet --info

Si vous voulez seulement voir les SDK : dotnet --list-sdks

Si vous ne voulez voir que les programmes d'exécution installés : dotnet --list-runtimes

Je suis sous Windows, mais je suppose que cela fonctionnerait aussi sur Mac ou Linux avec une version actuelle.

Vous pouvez également faire référence à la Archives de téléchargement de .NET Core pour vous aider à déchiffrer les versions du SDK.


DES INFORMATIONS PLUS ANCIENNES : Tout ce qui se trouve en dessous de ce point est une ancienne information, qui est moins pertinente, mais qui peut encore être utile.

Voir installé Temps d'exécution :

Ouvrir C:\Program Files\dotnet\shared\Microsoft.NETCore.App dans l'Explorateur Windows

Voir installé SDKs :

Ouvrir C:\Program Files\dotnet\sdk dans l'Explorateur Windows

(Source pour les emplacements : Le blog d'un développeur )


En outre, vous pouvez voir le dernier site Les versions Runtime et SDK sont installées en émettant ces commandes à l'invite de commande :

dotnet La dernière version du Runtime est la première chose listée. CLAUSE DE NON-RESPONSABILITÉ : Cela ne fonctionne plus, mais peut fonctionner pour les anciennes versions.

dotnet --version Dernière version du SDK CLAUSE DE NON-RESPONSABILITÉ : Apparemment, le résultat de cette opération peut être affecté par tout fichier de configuration global.json.


Sur macOS, vous pouvez vérifier la version de .net core en utilisant la commande ci-dessous.

ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/

Sur Ubuntu ou Alpine :

ls /usr/share/dotnet/shared/Microsoft.NETCore.App/

Le dossier contenant le nom de la version installée sera répertorié.

16 votes

Sur macOS : ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/

0 votes

Dans mon cas, dotnet --version disait 1.1.0, mais les versions installées incluaient 1.1.2. Juste pour vérifier, j'ai renommé dotnet.exe, et dotnet --version n'a pas trouvé de version. J'ai ensuite réinstallé la 1.1.2, et dotnet --version a de nouveau indiqué que j'avais la 1.1.0.

1 votes

@SergiiVolchkov merci pour le commentaire. Pouvez-vous me dire comment désinstaller dotnet core1.0.0 de mac ?

230voto

Andriy Tolstoy Points 2412

Utilisation de Powershell :

Durée du film :

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'shared\Microsoft.NETCore.App')).Name

SDKs :

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'sdk')).Name

1 votes

@MarceloFilho Quelle version avez-vous ? Vous pouvez l'obtenir en utilisant [System.Environment]::OSVersion . J'ai testé les commandes susmentionnées en utilisant la version 10.0.15063.0 de Windows 10. Cela fonctionne bien.

8 votes

Je peux confirmer que cela fonctionne parfaitement sur Windows server 2016 et Windows 10.

2 votes

La commande dotnet n'est-elle pas disponible uniquement lorsque le SDK est installé ? Ce qui est exactement le contraire de ce que le PO a demandé.

186voto

Chiramisu Points 1177

La réponse correcte pour les environnements d'exécution sans SDK, tels qu'un serveur avec le paquetage Windows Hosting installé, est d'exécuter PowerShell avec la commande suivante :

dotnet --info

Par le documentation officielle :

  • Le site --version L'option "Imprime la version du SDK .NET Core utilisée" et ne fonctionne donc pas si le SDK n'est pas installé. Alors que...
  • Le site --info option "Imprime des informations détaillées sur l'outil CLI et l'environnement, comme le système d'exploitation actuel, le commit SHA pour la version, et d'autres informations."

Voici un autre article officiel expliquant comment Version de .NET Core fonctionne. :)

14 votes

Ce qui est incroyable, c'est que c'est la vraie réponse. Et elle est enterrée sous une pile de réponses de personnes qui n'ont même pas pris la peine de lire la question correctement.

2 votes

--info ne fonctionne pas sur mon serveur, alors que --version fonctionne. L'option info me donne : Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

0 votes

@ArieKanarie Il se peut que vous deviez réparer en utilisant la fonction Outil de réparation de Microsoft .NET Framework .

125voto

Robert Paulsen Points 2339

Vous pouvez vérifier si dotnet.exe est disponible :

where dotnet

Vous pouvez alors vérifier la version :

dotnet --version

MISE À JOUR : Il existe maintenant une meilleure façon de procéder, qui est bien expliquée dans de nombreuses autres réponses :

dotnet --info

36 votes

Il s'agit de la version dotnet CLI, pas de la version runtime Ce sont deux choses différentes. Avoir CLI installé, ne signifie pas que le runtime est installé et si c'est la même version.

0 votes

ssh sur un serveur avec seulement le runtime installé pour confirmer, cela ne fonctionne pas. Voir plutôt cette réponse .

54voto

student Points 87

Un des moyens les plus simples de déterminer si .NET Core est installé sur Windows est :

  • Appuyez sur Windows + R
  • Type cmd
  • À l'invite de commande, tapez dotnet --version

dotnet --version

Si le .NET Core est installé, nous ne devrions pas obtenir d'erreur dans les étapes ci-dessus.

8 votes

Voir commentaire ci-dessus à la même réponse : C'est la version de dotnet CLI, pas la version runtime Ce sont deux choses différentes. Avoir CLI installé, ne signifie pas que le runtime est installé et si c'est la même version

1 votes

Nitpcking, mais vous ne pouvez pas avoir un CLI qui fonctionne sans un runtime installé. Donc si vous avez un CLI, vous aurez un peu de l'exécution, c'est juste qu'il peut s'agir d'une version complètement différente.

0 votes

@omajid Je ne suis pas sûr de l'interface CLI dont vous parlez. Le CLI auquel je fais référence dans ma réponse est le CLI de l'invite de commande par défaut sous Windows 10 x64, qui est installé/disponible sans installation spéciale.

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