So stellen Sie fest, ob .NET Core installiert ist

302

Ich weiß, dass Sie für ältere Versionen von .NET feststellen können, ob eine bestimmte Version installiert ist, indem Sie Folgendes befolgen

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

Gibt es eine offizielle Methode, um festzustellen, ob .NET Core installiert ist?

(Und ich meine nicht das SDK, ich möchte einen Server ohne das SDK überprüfen, um festzustellen, ob DotNetCore.1.0.0-WindowsHosting.exe darauf installiert ist.)

Ich kann es sehen

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

mit der Versionsnummer 1.0.11123.0 auf meinem Windows 7-Computer, aber auf meinem Windows 10-Computer wird nicht dasselbe angezeigt.

weloytty
quelle
1
Gute Frage. Jeder, der .NET Core folgt, weiß, dass die Versionierung von Runtime und SDK ein sehr verwirrendes Thema ist.
Sean
@Chiramisu, Alle unten aufgeführten haben bei mir funktioniert, aber aufgrund einiger irrelevanter Implementierungsdetails habe ich mich für die Konfiguration des gewünschten Status entschieden und diese verwendet, um sicherzustellen, dass das Hosting von dnc Windows-Servern installiert ist. (Dh ich habe Ensure = Abwesend in DotNetCore.1.0.0-WindowsServerHosting.exe und Ensure = Vorhanden in DotnetCore.2.0.5-WindowsServerHosting.exe) (oder einen anderen gewünschten Dateinamen). DSC kümmert sich um alle Probleme bei der Überprüfung, um sicherzustellen, dass das entsprechende Paket installiert / deinstalliert ist.
Weloytty
3
dotnet --list-sdks und dotnet --list-runtimes sind auf meinem Host mit 2.1.300-Preview1-008174 als aktiver Version verfügbar
Jumpercake
Führen Sie diesen Befehl in Powershell Dotnet aus --info Source
manikanta kumar

Antworten:

209

Mit Powershell :

Laufzeit:

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

SDKs:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'sdk')).Name
Andriy Tolstoi
quelle
1
@MarceloFilho Welche Version hast du? Sie können es mit bekommen [System.Environment]::OSVersion. Ich habe die oben genannten Befehle mit Windows 10 Version 10.0.15063.0 getestet. Es funktioniert gut.
Andriy Tolstoy
6
Ich kann bestätigen, dass dies unter Windows Server 2016 und Windows 10 einwandfrei funktioniert.
user5389726598465
1
Ist der Befehl dotnet nicht nur mit installiertem SDK verfügbar? Das war genau das Gegenteil von dem, was das OP verlangte.
Aurimas N.
@ AurimasN. Nein, der Befehl dotnet.exe ist sowohl für die SDK- als auch für die Runtime-Bereitstellung verfügbar. Das SDK fügt einfach die erforderlichen CLI-Befehle und erforderlichen Bibliotheken hinzu, die erforderlich sind, um "dotnet.exe build" und "dotnet.exe run" innerhalb eines Projekts auszuführen.
Jason Mock
3
Funktioniert in PowerShell unter Windows 10, aber ich bevorzuge es dotnet --info, in anderen Antworten vorgeschlagen zu werden.
Manfred
345

Gute Frage, und die Antwort ist nicht einfach. Es gibt keinen Befehl "Zeige mir alle .net-Kernversionen", aber es gibt Hoffnung.

BEARBEITEN:

Ich bin nicht sicher, wann es hinzugefügt wurde, aber der Befehl info enthält diese Informationen jetzt in seiner Ausgabe. Es werden die installierten Laufzeiten und SDKs sowie einige andere Informationen ausgedruckt:

dotnet --info

Wenn Sie nur die SDKs sehen möchten: dotnet --list-sdks

Wenn Sie nur installierte Laufzeiten sehen möchten: dotnet --list-runtimes

Ich bin unter Windows, aber ich würde vermuten, dass dies auch mit einer aktuellen Version unter Mac oder Linux funktionieren würde.

Sie können auch auf das .NET Core-Download-Archiv verweisen , um die SDK-Versionen zu entschlüsseln.


ÄLTERE INFORMATIONEN: Alles, was unter diesem Punkt liegt, sind alte Informationen, die weniger relevant sind, aber dennoch nützlich sein können.

Siehe installierte Runtimes :

Öffnen Sie C:\Program Files\dotnet\shared\Microsoft.NETCore.Appim Windows Explorer

Siehe installierte SDKs :

Öffnen Sie C:\Program Files\dotnet\sdkim Windows Explorer

(Quelle für die Standorte: Ein Entwicklerblog )


Darüber hinaus können Sie die neuesten installierten Runtime- und SDK-Versionen anzeigen, indem Sie diese Befehle an der Eingabeaufforderung eingeben:

dotnet Die neueste Laufzeitversion ist das erste, was aufgelistet wird. HAFTUNGSAUSSCHLUSS: Dies funktioniert nicht mehr, kann jedoch für ältere Versionen funktionieren.

dotnet --version Neueste SDK-Version HAFTUNGSAUSSCHLUSS: Anscheinend kann das Ergebnis davon durch alle Konfigurationsdateien von global.json beeinflusst werden.


Unter macOS können Sie die .net-Kernversion mit dem folgenden Befehl überprüfen.

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

Auf Ubuntu oder Alpine:

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

Der Ordner mit dem Namen der installierten Version wird aufgelistet.

Sean
quelle
15
Unter macOS:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov
In meinem Fall sagte dotnet --version 1.1.0, aber die installierten Versionen enthielten 1.1.2. Nur zur Überprüfung habe ich dotnet.exe umbenannt und dotnet --version hat keine Version gefunden. Ich habe dann 1.1.2 neu installiert und dotnet --version sagte erneut, ich hätte 1.1.0.
William Jockusch
1
@SergiiVolchkov danke für den Kommentar. Können Sie mir bitte sagen, wie ich dotnet core1.0.0 von einem Mac deinstallieren kann?
Pankaj Parkar
1
.NET Core 2.1.0 fügt "dotnet --list-runtimes" und "dotnet --list-sdks" hinzu
b8adamson
1
dotnet --versionlistet das verwendete SDK auf, das standardmäßig das neueste ist, aber nicht immer wahr ist. Wenn Ihre Ordnerstruktur eine global.json-Datei enthält, wird die in global.json festgelegte Version angezeigt, nicht die neueste.
Maíra Wenzel - MSFT
164

Die richtige Antwort für Nur-Laufzeit-Umgebungen ohne SDK, z. B. einen Server mit installiertem Windows-Hosting-Paket, besteht darin, PowerShell mit dem folgenden Befehl auszuführen:

dotnet --info

Gemäß der offiziellen Dokumentation :

  • Die --versionOption "Druckt die verwendete Version des .NET Core SDK aus." und funktioniert daher nicht, wenn das SDK nicht installiert ist. Wohingegen...
  • Die --infoOption "Druckt detaillierte Informationen über das CLI-Tooling und die Umgebung aus, z. B. das aktuelle Betriebssystem, Commit SHA für die Version und andere Informationen."

Hier ist ein weiterer offizieller Artikel, der erklärt, wie die .NET Core-Versionierung funktioniert. :) :)

Chiramisu
quelle
9
Was unglaublich ist, ist die eigentliche Antwort. Und es ist unter einem Stapel von Antworten von Leuten begraben, die sich nicht einmal die Mühe gemacht haben, die Frage richtig zu lesen.
Jammer
--infofunktioniert nicht auf meinem Server, wohingegen --versionfunktioniert. Die Info-Option gibt mir:Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
ArieKanarie
@ArieKanarie Möglicherweise müssen Sie mit dem Microsoft .NET Framework Repair Tool reparieren .
Chiramisu
106

Sie können überprüfen, ob dotnet.exe verfügbar ist:

where dotnet

Sie können dann die Version überprüfen:

dotnet --version

UPDATE: Es gibt jetzt einen besseren Weg, dies zu tun, was in vielen anderen Antworten gut erklärt wird:

dotnet --info

Robert Paulsen
quelle
34
Es übertrifft die Dotnet-CLI-Version, nicht die Laufzeit. Es sind zwei verschiedene Dinge. Wenn CLI installiert ist, bedeutet dies nicht, dass die Laufzeit installiert ist und dass es sich um dieselbe Version handelt.
Aleksanderis
sshEs funktioniert nicht auf einem Server, auf dem nur die Laufzeit installiert ist, um zu bestätigen, dass es nicht funktioniert. Siehe stattdessen diese Antwort .
Gldraphael
49

Eine der Dummies-Methoden, um festzustellen, ob .NET CoreWindows installiert ist, ist:

  • Drücken Sie Windows+R
  • Art cmd
  • Geben Sie an der Eingabeaufforderung Folgendes ein dotnet --version

dotnet --version

Wenn das .NET Coreinstalliert ist, sollten wir in den obigen Schritten keinen Fehler erhalten.

Mohammed Zameer
quelle
6
Siehe Kommentar oben zur gleichen Antwort: Es übertrifft die Dotnet-CLI-Version, nicht die Laufzeit. Es sind zwei verschiedene Dinge. Wenn CLI installiert ist, bedeutet dies nicht, dass die Laufzeit installiert ist und wenn es sich um dieselbe Version handelt
Michael Freidgeim,
Nitpcking, aber Sie können keine CLI haben, die ohne installierte Laufzeit funktioniert. Wenn Sie also eine CLI haben, haben Sie eine gewisse Laufzeit. Es ist nur so, dass es sich möglicherweise um eine völlig andere Version handelt.
Omajid
@omajid Nicht sicher, über welche CLI Sie sprechen. Die CLI, auf die ich mich in meiner Antwort beziehe, ist die Standard-Eingabeaufforderungs-CLI unter Windows 10 x64, die ohne spezielle Installationen installiert / verfügbar ist
Mohammed Zameer
Dies ist nicht die Antwort auf die Frage.
Jammer
@Jammer Ich schlage vor , stellen Sie einen Bearbeitungs Vorschlag
Mohammed Zameer
20

(1) Wenn Sie sich im Fenstersystem befinden.

Öffnen Sie die Eingabeaufforderung.

 dotnet --version

(2) Führen Sie den folgenden Befehl aus, wenn Sie sich auf einem Linux-System befinden.

dotnet --version

dotnet --info
Hiren Parghi
quelle
type dotnet --version- Funktioniert nicht unter Windows 10. Funktioniert dotnet --versionjedoch. Bist du dir deiner Antwort sicher oder war das typeein Tippfehler? Beide Linux-Befehle funktionieren für mich unter Win 10.
Aditya
@Aditya stimmt zu, dass dies typeeher eine Anweisung an den Leser als ein Teil des Befehls ist. Ich habe den Beitrag entsprechend bearbeitet.
JohnLBevan
Ja, es war eine Anweisung.
Hiren Parghi
15

Ich arbeite hauptsächlich mit Windows-Entwicklungsmaschinen und -Servern.

Ich wollte nur darauf hinweisen (zumindest für NET.Core 2.0 und höher), dass nur dotnet --infoeine Eingabeaufforderung ausgeführt werden muss, um Informationen über die neueste installierte Version zu erhalten. Wenn .NET Core installiert ist, erhalten Sie eine Antwort.

Auf meinem Entwicklungscomputer (Windows 10) ist das Ergebnis wie folgt. SDK ist 2.1.2 und Laufzeit ist 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

Auf einem meiner Server unter Windows Server 2016 mit Windows Server Hosting Pack (kein SDK) ist das Ergebnis wie folgt. Kein SDK, Laufzeit ist 2.0.3.

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Prost !

Hakan Çelik MK1
quelle
10

Die folgenden Befehle sind mit .NET Core SDK 2.1 (v2.1.300) verfügbar :

Verwenden Sie zum Auflisten aller installierten .NET Core SDKs: dotnet --list-sdks

Verwenden Sie zum Auflisten aller installierten .NET Core-Laufzeiten dotnet --list-runtimes

(zum Zeitpunkt des Schreibens am 3. Juni 2018 und erneut am 23. August 2018 unter Windows getestet)

Update vom 24. Oktober 2018: Die bessere Option befindet sich wahrscheinlich jetzt dotnet --infoin einem Terminal oder PowerShell-Fenster, wie bereits in anderen Antworten erwähnt.

Manfred
quelle
Wir alle können lernen. Neugierig, den Grund für die Ablehnung zu kennen. Vielleicht einen Kommentar hinterlassen, wenn Sie abstimmen?
Manfred
Ich habe nicht abgelehnt, aber ich spekuliere, dass dies daran liegen könnte, dass Sie Befehle "verfügbar mit .NET Core SDK" erwähnt haben, während in der Frage "Ich möchte einen Server ohne SDK überprüfen" angegeben wird. Ihre Antwort würde sich verbessern, wenn Sie bestimmen, welcher der oben genannten Befehle funktioniert, wenn nur die Laufzeit installiert ist.
ToolmakerSteve
@ToolmakerSteve Ja, das könnte der Punkt sein. Ich habe jedoch keine Umgebung ohne das SDK und möchte es nicht so weit entfernen. Vielen Dank für Ihren Kommentar. Sehr geschätzt.
Manfred
5

Unter Windows müssen Sie nur die Eingabeaufforderung öffnen und Folgendes eingeben:

dotnet --version

Wenn das .net Core Framework installiert ist, erhalten Sie die aktuell installierte Version

siehe Screenshot:

Geben Sie hier die Bildbeschreibung ein

Eli Dagan
quelle
3
Dies gibt Ihnen die SDK-Version, nicht die Laufzeitversion
Seidenfeuer
1

Alternativ können Sie auch einfach hineinschauen

C: \ Programme \ dotnet \ sdk

Zeus
quelle
0

Schauen Sie C:\Program Files\dotnet\shared\Microsoft.NETCore.Appnach, welche Versionen der Laufzeit dort Verzeichnisse haben. Quelle.

Viele der Antworten hier verwechseln das SDK mit der Laufzeit, die unterschiedlich sind.

Jaycer
quelle
0

Nach all den anderen Antworten könnte sich dies als nützlich erweisen.

Öffnen Sie Ihre Anwendung in Visual Studio. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf Ihr Projekt. Klicken Sie auf Eigenschaften. Klicken Sie auf Anwendung. Klicken Sie unter "Ziel-Framework" auf die Dropdown-Schaltfläche und Sie haben alle installierten Frameworks.

Übrigens - Sie können jetzt auswählen, welches Framework Sie möchten.

Baruch Atta
quelle
Ich habe Visual Studio 2017 verwendet. YMMV.
Baruch Atta
-6

Es ist kein Installationsvorgang erforderlich.

Ich habe "VSCore" in meiner Taskleiste (win10) angeheftet, also öffne es und öffne einen Task-Manager " Speisekarte.

Wenn Sie sich nicht erinnern, wo installiert ist, suchen Sie die Datei "Code.exe" auf allen Ihren Festplatten.

JoseRamos
quelle
1
Die Frage bezieht sich auf .NET CORE und nicht auf den ide VS CODE.
user5389726598465