Comment déterminer si .NET Core est installé

302

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

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 si DotNetCore.1.0.0-WindowsHosting.exe y est installé)

je vois

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

avec la version # de 1.0.11123.0 sur ma machine Windows 7, mais je ne vois pas la même chose sur ma machine Windows 10.

weloytty
la source
1
Bonne question. Quiconque suit .NET Core sait que la version du Runtime et du SDK est un sujet très déroutant.
Sean
@Chiramisu, Tous les éléments vérifiés ci-dessous ont fonctionné pour moi, mais en raison de certains détails d'implémentation non pertinents, j'ai opté pour la configuration de l'état souhaité, et je l'ai utilisé pour m'assurer que l'hébergement du serveur dnc windows est installé. (C'est-à-dire que j'ai Assure = Absent sur DotNetCore.1.0.0-WindowsServerHosting.exe et Assure = Présent sur DotnetCore.2.0.5-WindowsServerHosting.exe) (ou tout autre nom de fichier que vous pouvez trouver vouloir). DSC gère tout le désordre lié à la vérification pour s'assurer que le package approprié est installé / désinstallé.
weloytty
3
dotnet --list-sdks et dotnet --list-runtimes sont disponibles sur mon hôte avec 2.1.300-preview1-008174 comme version active
jumpercake
Exécutez cette commande ci-dessous dans powershell dotnet --info Source
manikanta kumar

Réponses:

209

Utilisation de Powershell :

Temps d'exécution:

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

SDK:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'sdk')).Name
Andriy Tolstoy
la source
1
@MarceloFilho De quelle version disposez-vous? Vous pouvez l'obtenir en utilisant [System.Environment]::OSVersion. J'ai testé les commandes mentionnées ci-dessus en utilisant Windows 10 version 10.0.15063.0. Ça fonctionne bien.
Andriy Tolstoy
6
Je peux confirmer que cela fonctionne parfaitement sur Windows Server 2016 et Windows 10.
user5389726598465
1
La commande dotnet n'est-elle disponible qu'avec le SDK installé? Ce qui était exactement à l'opposé de ce que le PO demandait.
Aurimas N.
@AurimasN. Non, la commande dotnet.exe est disponible avec les déploiements SDK et Runtime. Le Kit de développement logiciel (SDK) ajoute simplement les commandes CLI et les bibliothèques prérequises nécessaires pour effectuer la «construction dotnet.exe» et «l'exécution dotnet.exe» à partir d'un projet.
Jason Mock
3
Fonctionne dans PowerShell sur Windows 10 mais je préfère dotnet --infosuggéré dans d'autres réponses.
Manfred
345

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

ÉDITER:

Je ne sais pas quand il a été ajouté, mais la commande info inclut désormais ces informations dans sa sortie. Il imprimera les runtimes et SDK installés, ainsi que d'autres informations:

dotnet --info

Si vous ne voulez voir que les SDK: dotnet --list-sdks

Si vous voulez seulement voir les runtimes 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 référencer l' archive de téléchargement .NET Core pour vous aider à déchiffrer les versions du SDK.


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

Voir les Runtimes installés :

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

Voir les SDK installés :

Ouvrir C:\Program Files\dotnet\sdkdans l'Explorateur Windows

(Source pour les lieux: le blog d'un développeur )


De plus, vous pouvez voir les dernières versions du Runtime et du SDK installées en émettant ces commandes à l'invite de commandes:

dotnet La dernière version de Runtime est la première chose répertoriée. AVERTISSEMENT: cela ne fonctionne plus, mais peut fonctionner pour les anciennes versions.

dotnet --version Dernière version du SDK AVERTISSEMENT: Apparemment, le résultat de ceci peut être affecté par n'importe quel fichier de configuration global.json.


Sur macOS, vous pouvez vérifier la version de base .net 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/

Il répertorie le dossier avec le nom de la version installée.

Sean
la source
15
Sur macOS:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov
Dans mon cas, dotnet --version a dit 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 trouvé aucune version. J'ai ensuite réinstallé 1.1.2, et dotnet --version a de nouveau dit que j'avais 1.1.0.
William Jockusch
1
@SergiiVolchkov merci pour le commentaire. Pouvez-vous me dire comment désinstaller dotnet core1.0.0 de mac?
Pankaj Parkar
1
.NET Core 2.1.0 ajoute "dotnet --list-runtimes" et "dotnet --list-sdks"
b8adamson
1
dotnet --versionrépertorie le SDK utilisé, qui est le dernier par défaut, mais pas toujours vrai. Si vous avez un fichier global.json dans votre structure de dossiers, il affichera la version définie dans global.json, pas la dernière.
Maíra Wenzel - MSFT
164

La bonne réponse pour les environnements d'exécution uniquement sans SDK, tels qu'un serveur avec le package d'hébergement Windows installé, est d'exécuter PowerShell avec la commande suivante:

dotnet --info

Selon la documentation officielle :

  • L' --versionoption «Imprime la version du SDK .NET Core en cours d'utilisation». et ne fonctionne donc pas si le SDK n'est pas installé. Tandis que...
  • L' --infooption "Imprime des informations détaillées sur les outils CLI et l'environnement, tels que le système d'exploitation actuel, valider SHA pour la version et d'autres informations."

Voici un autre article officiel expliquant le fonctionnement du contrôle de version .NET Core . :)

Chiramisu
la source
9
Ce qui est incroyable, c'est que c'est la vraie réponse. Et il est enfoui sous une pile de réponses de personnes qui n'ont même pas pris la peine de lire la question correctement.
Jammer
--infone fonctionne pas sur mon serveur, alors --versionque 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
ArieKanarie
@ArieKanarie Vous devrez peut-être réparer à l'aide de l' outil de réparation Microsoft .NET Framework .
Chiramisu
106

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

where dotnet

Vous pouvez ensuite vérifier la version:

dotnet --version

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

dotnet --info

Robert Paulsen
la source
34
Il dépasse la version CLI dotnet, pas le runtime. Ce sont deux choses différentes. Ayant CLI installé, cela ne signifie pas que le runtime est installé et s'il s'agit de la même version.
Aleksanderis
sshed sur un serveur avec seulement le runtime installé pour confirmer, cela ne fonctionne pas. Voir plutôt cette réponse .
gldraphael
49

L'une des fausses façons de déterminer si .NET Coreest installé sur Windows est:

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

dotnet --version

Si le .NET Coreest installé, nous ne devrions obtenir aucune erreur dans les étapes ci-dessus.

Mohammed Zameer
la source
6
Voir le commentaire ci-dessus pour la même réponse: Il surpasse la version CLI de dotnet, pas le runtime. Ce sont deux choses différentes. Ayant CLI installé, cela ne signifie pas que le runtime est installé et s'il s'agit de la même version
Michael Freidgeim
Nitpcking, mais vous ne pouvez pas avoir une CLI qui fonctionne sans un runtime installé. Donc, si vous avez une CLI, vous aurez un certain temps d'exécution, c'est juste que ce peut être une version complètement différente.
omajid
@omajid Vous ne savez pas de quelle CLI vous parlez. L'interface CLI à laquelle je fais référence dans ma réponse est l'invite de commande par défaut CLI sur Windows 10 x64 qui est installée / disponible sans installations spéciales
Mohammed Zameer
Ce n'est pas la réponse à la question.
Jammer
@Jammer Je vous suggère de fournir une suggestion de modification
Mohammed Zameer
20

(1) Si vous utilisez le système Windows.

Ouvrez l'invite de commande.

 dotnet --version

(2) Exécutez la commande ci-dessous si vous êtes sur un système Linux.

dotnet --version

dotnet --info
Hiren Parghi
la source
type dotnet --version- Ne fonctionne pas sur Windows 10. dotnet --versionfonctionne cependant. Vous êtes sûr de votre réponse ou était-ce typeune faute de frappe? Les deux commandes Linux fonctionnent sur Win 10 pour moi.
Aditya
@Aditya est d'accord pour penser que typec'est une instruction au lecteur plutôt qu'une partie de la commande. J'ai modifié le message pour qu'il corresponde.
JohnLBevan
Oui, c'était une instruction.
Hiren Parghi
15

Je travaille principalement avec des machines et serveurs de développement Windows.

Je voulais juste souligner (au moins pour NET.Core 2.0 et supérieur) la seule chose nécessaire est d'exécuter dotnet --infodans une invite de commande pour obtenir des informations sur la dernière version installée. Si .NET Core est installé, vous obtiendrez une réponse.

Sur ma machine de développement (Windows 10), le résultat est le suivant. Le SDK est 2.1.2 et le runtime est 2.0.3.

.NET Command Line Tools (2.1.2)

Product Information:
 Version:            2.1.2
 Commit SHA-1 hash:  5695315371

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.15063
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.2\

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.3
  Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Sur l'un de mes serveurs exécutant Windows Server 2016 avec le pack d'hébergement Windows Server (sans SDK), le résultat est le suivant. Pas de SDK, le runtime est 2.0.3.

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

À votre santé !

Hakan Çelik MK1
la source
10

Les commandes suivantes sont disponibles avec .NET Core SDK 2.1 (v2.1.300) :

Pour répertorier tous les SDK .NET Core installés, utilisez: dotnet --list-sdks

Pour répertorier tous les runtimes .NET Core installés, utilisez dotnet --list-runtimes

(testé sur Windows au moment de la rédaction, 03 juin 2018, et à nouveau le 23 août 2018)

Mise à jour du 24 octobre 2018: une meilleure option est probablement maintenant dotnet --infodans un terminal ou une fenêtre PowerShell comme déjà mentionné dans d'autres réponses.

Manfred
la source
Nous pouvons tous apprendre. Curieux de connaître la raison du downvote. Peut-être laisser un commentaire lorsque vous votez?
Manfred
Je n'ai pas déçu, mais je pense que c'est peut-être parce que vous avez mentionné les commandes "disponibles avec .NET Core SDK", alors que la question indique "Je veux vérifier un serveur sans le SDK". Votre réponse serait améliorée si vous déterminez laquelle des commandes ci-dessus fonctionne lorsque seul le runtime est installé.
ToolmakerSteve
@ToolmakerSteve Oui, cela pourrait être le point. Je n'ai pas d'environnement, cependant, sans le SDK et je ne voudrais pas aller aussi loin pour le supprimer ... Merci pour votre commentaire, cependant. Très apprécié.
Manfred
5

Sous Windows, il vous suffit d'ouvrir l'invite de commande et de taper:

dotnet --version

Si le framework .net core installé, vous obtiendrez la version installée actuelle

voir capture d'écran:

entrez la description de l'image ici

Eli Dagan
la source
3
Cela vous donne la version SDK, pas la version d'exécution
silkfire
1

Alternativement, vous pouvez simplement regarder à l'intérieur

C: \ Program Files \ dotnet \ sdk

Zeus
la source
0

Recherchez les C:\Program Files\dotnet\shared\Microsoft.NETCore.Appversions du runtime qui contiennent des répertoires. La source.

Beaucoup de réponses ici confondent le SDK avec le Runtime, qui sont différents.

Jaycer
la source
0

Après toutes les autres réponses, cela pourrait s'avérer utile.

Ouvrez votre application dans Visual Studio. Dans Solutions Explorer, cliquez avec le bouton droit sur votre projet. Cliquez sur Propriétés. Cliquez sur Application. Sous "Framework cible", cliquez sur le bouton déroulant et vous y êtes, tous les frameworks installés.

BTW - vous pouvez maintenant choisir le cadre que vous souhaitez.

Baruch Atta
la source
J'ai utilisé Visual Studio 2017. YMMV.
Baruch Atta
-6

Il n'a pas besoin d'un processus d'installation.

J'ai épinglé "VSCore" sur ma barre des tâches (win10), alors ouvrez-le et ouvrez un gestionnaire de tâches choisissez "Visual Studio Core" processus développez la flèche gauche et au-dessus de l'un d'eux, cliquez avec le bouton droit sur le processus enfant et cliquez sur "Ouvrir l'emplacement du fichier" "menu.

Si vous ne vous souvenez pas où est installé, recherchez le fichier "Code.exe" sur tous vos disques durs.

JoseRamos
la source
1
La question porte sur .NET CORE et non sur l'IDE VS CODE.
user5389726598465