Jak ustalić, czy .NET Core jest zainstalowany

301

Wiem, że w przypadku starszych wersji platformy .NET można ustalić, czy dana wersja jest zainstalowana, wykonując następujące czynności

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

Czy istnieje oficjalna metoda ustalenia, czy .NET Core jest zainstalowany?

(I nie mam na myśli zestawu SDK, chcę sprawdzić serwer bez zestawu SDK, aby ustalić, czy ma on zainstalowany DotNetCore.1.0.0-WindowsHosting.exe)

widze

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

z wersją 1.0.11123.0 na moim komputerze z systemem Windows 7, ale nie widzę takich samych rzeczy na moim komputerze z systemem Windows 10.

weloytty
źródło
1
Dobre pytanie. Każdy, kto śledzi .NET Core, wie, że wersja środowiska wykonawczego i zestawu SDK jest bardzo mylącym tematem.
Sean
@Chiramisu, Wszystkie zaznaczone poniżej działały dla mnie, ale z powodu niektórych nieistotnych szczegółów implementacyjnych poszedłem z Desired State Configuration i użyłem tego, aby upewnić się, że serwer Windows dnc jest zainstalowany. (Tj. Mam opcję Zapewnij = nieobecny w DotNetCore.1.0.0-WindowsServerHosting.exe i Zapewnij = obecny w DotnetCore.2.0.5-WindowsServerHosting.exe) (lub dowolną inną nazwę pliku, którą możesz znaleźć). DSC obsługuje cały bałagan związany ze sprawdzaniem, aby upewnić się, że odpowiedni pakiet jest zainstalowany / odinstalowany.
weloytty
3
dotnet --list-sdks i dotnet --list-runtimes są dostępne na moim hoście z wersją 2.1.300-Preview1-008174 jako aktywną wersją
zworka
Uruchom poniższe polecenie w PowerShell dotnet
manikanta kumar

Odpowiedzi:

208

Korzystanie z PowerShell :

Runtimes:

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

Zestawy SDK:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'sdk')).Name
Andrij Tołstoj
źródło
1
@MarceloFilho Którą wersję posiadasz? Możesz to uzyskać za pomocą [System.Environment]::OSVersion. Testowałem wyżej wymienione polecenia w systemie Windows 10 w wersji 10.0.15063.0. To działa dobrze.
Andrij Tołstoj
6
Mogę potwierdzić, że działa to doskonale na Windows Server 2016 i Windows 10.
user5389726598465
1
Czy polecenie dotnet nie jest dostępne tylko przy zainstalowanym zestawie SDK? Co było dokładnie przeciwne do tego, o co poprosił PO.
Aurimas N.
@AurimasN. Nie, polecenie dotnet.exe jest dostępne zarówno we wdrożeniach SDK, jak i Runtime. Zestaw SDK dodaje po prostu niezbędne polecenia CLI i wymagane biblioteki, niezbędne do wykonania „kompilacji dotnet.exe” i „uruchomienia dotnet.exe” z poziomu projektu.
Jason Mock,
3
Działa w PowerShell na Windows 10, ale wolę dotnet --infosugerowane w innych odpowiedziach.
Manfred
344

Świetne pytanie, a odpowiedź nie jest prosta. Nie ma polecenia „pokaż mi wszystkie wersje jądra .net”, ale jest nadzieja.

EDYTOWAĆ:

Nie jestem pewien, kiedy został dodany, ale polecenie info zawiera teraz tę informację w danych wyjściowych. Wydrukuje zainstalowane środowiska wykonawcze i zestawy SDK, a także kilka innych informacji:

dotnet --info

Jeśli chcesz tylko zobaczyć zestawy SDK: dotnet --list-sdks

Jeśli chcesz zobaczyć tylko zainstalowane środowiska wykonawcze: dotnet --list-runtimes

Korzystam z systemu Windows, ale domyślam się, że działałoby to również na Macu lub Linuksie w bieżącej wersji.

Możesz także odwołać się do .NET Core Download Archive, aby pomóc odszyfrować wersje zestawu SDK.


INFORMACJE STARSZE: Wszystko poniżej tego punktu to stare informacje, które są mniej istotne, ale mogą być przydatne.

Zobacz zainstalowane środowiska wykonawcze :

otwarty C:\Program Files\dotnet\shared\Microsoft.NETCore.App w Eksploratorze Windows

Zobacz zainstalowane zestawy SDK :

otwarty C:\Program Files\dotnet\sdk w Eksploratorze Windows

(Źródło lokalizacji: blog programisty )


Ponadto można zobaczyć zainstalowane najnowsze wersje środowiska wykonawczego i zestawu SDK, wydając następujące polecenia w wierszu polecenia:

dotnet Najnowsza wersja Runtime jest pierwszą rzeczą na liście. ZASTRZEŻENIE: To już nie działa, ale może działać dla starszych wersji.

dotnet --version Najnowsza wersja zestawu SDK OŚWIADCZENIE: Najwyraźniej na wynik tego mogą mieć wpływ dowolne pliki konfiguracyjne global.json.


W systemie macOS można sprawdzić wersję .net core za pomocą poniższego polecenia.

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

W systemie Ubuntu lub Alpine:

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

Spowoduje wyświetlenie folderu z nazwą zainstalowanej wersji.

Sean
źródło
15
W systemie macOS:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov,
W moim przypadku dotnet --version powiedział 1.1.0, ale zainstalowane wersje zawierały 1.1.2. Dla sprawdzenia zmieniłem nazwę dotnet.exe i dotnet --version nie znalazł żadnej wersji. Następnie przeinstalowałem 1.1.2, a wersja dotnet ponownie powiedziała, że ​​mam 1.1.0.
William Jockusch
1
@SergiiVolchkov dzięki za komentarz. Czy możesz mi powiedzieć, jak odinstalować program dotnet core1.0.0 z systemu Mac?
Pankaj Parkar
1
.NET Core 2.1.0 dodaje „dotnet --list-runtimes” i „dotnet --list-
sdks
1
dotnet --versionwyświetla używany zestaw SDK, który jest domyślnie najnowszy, ale nie zawsze jest prawdziwy. Jeśli masz plik global.json w strukturze folderów, wyświetli on dowolną wersję ustawioną w global.json, a nie najnowszą.
Maíra Wenzel - MSFT
164

Prawidłowa odpowiedź dla środowisk wykonawczych bez zestawu SDK, takich jak serwer z zainstalowanym pakietem Windows Hosting, to uruchomienie programu PowerShell za pomocą następującego polecenia:

dotnet --info

Według oficjalnej dokumentacji :

  • --versionOpcja „Drukuje wersji podstawowej .NET SDK w użyciu.” i dlatego nie działa, jeśli SDK nie jest zainstalowany. Natomiast...
  • --infoOpcja „Drukuje szczegółowe informacje na temat narzędzi CLI i środowiska, takie jak w obecnym systemie operacyjnym popełnić SHA dla wersji i inne informacje.”

Oto kolejny oficjalny artykuł wyjaśniający, jak działa wersjonowanie .NET Core . :)

Chiramisu
źródło
9
To, co niewiarygodne, to faktyczna odpowiedź. I jest zakopany pod stosem odpowiedzi od osób, które nawet nie zadały sobie trudu, aby poprawnie odczytać pytanie.
Jammer,
--infonie działa na moim serwerze, --versionale działa. Opcja informacji daje mi:Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
ArieKanarie
@ArieKanarie Może być konieczna naprawa za pomocą narzędzia do naprawy Microsoft .NET Framework .
Chiramisu
106

Możesz sprawdzić, czy plik dotnet.exe jest dostępny:

where dotnet

Następnie możesz sprawdzić wersję:

dotnet --version

AKTUALIZACJA: Istnieje teraz lepszy sposób na zrobienie tego, co zostało dobrze wyjaśnione w wielu innych odpowiedziach:

dotnet --info

Robert Paulsen
źródło
34
Jest to wersja interfejsu CLI dotnet, a nie środowisko uruchomieniowe. To dwie różne rzeczy. Zainstalowanie interfejsu CLI nie oznacza, że ​​środowisko wykonawcze jest zainstalowane i jeśli jest to ta sama wersja.
Aleksanderis,
sshEdycja na serwerze z zainstalowanym środowiskiem uruchomieniowym w celu potwierdzenia nie działa. Zamiast tego zobacz tę odpowiedź .
gldraphael
49

Jednym ze sposobów manekinów, aby ustalić, czy .NET Corejest zainstalowany w systemie Windows jest:

  • Naciśnij Windows+R
  • Rodzaj cmd
  • W wierszu polecenia wpisz dotnet --version

dotnet --wersja

Jeśli .NET Corejest zainstalowany, nie powinniśmy otrzymywać żadnych błędów w powyższych krokach.

Mohammed Zameer
źródło
6
Zobacz komentarz powyżej do tej samej odpowiedzi: To wersja CLI Outpus dotnet, a nie środowisko uruchomieniowe. To dwie różne rzeczy. Zainstalowanie CLI nie oznacza, że ​​środowisko wykonawcze jest zainstalowane, a jeśli jest to ta sama wersja
Michael Freidgeim,
Nitpcking, ale nie możesz mieć interfejsu CLI, który działa bez zainstalowanego środowiska wykonawczego. Więc jeśli masz CLI, będziesz mieć trochę czasu wykonania, po prostu może to być zupełnie inna wersja.
omajid
@ omajid Nie jestem pewien, o czym mówisz CLI. Interfejs CLI, o którym mowa w mojej odpowiedzi, to domyślny wiersz polecenia CLI w systemie Windows 10 x64, który jest zainstalowany / dostępny bez specjalnych instalacji
Mohammed Zameer,
To nie jest odpowiedź na pytanie.
Jammer,
@Jammer Proponuję podać sugestię edycji
Mohammed Zameer
20

(1) Jeśli korzystasz z systemu Windows.

Otwórz wiersz polecenia.

 dotnet --version

(2) Uruchom poniższe polecenie, jeśli korzystasz z systemu Linux.

dotnet --version

dotnet --info
Hiren Parghi
źródło
type dotnet --version- Nie działa w systemie Windows 10. dotnet --versionDziała jednak. Jesteś pewien swojej odpowiedzi, czy to była typeliterówka? Oba polecenia linux działają dla mnie na Win 10.
Aditya
@Aditya zgadza się, że typejest to instrukcja dla czytelnika, a nie część polecenia. Zredagowałem wpis, aby dopasować.
JohnLBevan,
Tak, to była instrukcja.
Hiren Parghi
15

Pracuję głównie z maszynami i serwerami programistycznymi Windows.

Chciałem tylko wskazać (przynajmniej dla NET.Core 2.0 i nowszych) jedyne, czego potrzeba, to wykonać dotnet --infow wierszu polecenia, aby uzyskać informacje o zainstalowanej najnowszej wersji. Jeśli .NET Core jest zainstalowany, otrzymasz odpowiedź.

Na moim komputerze programistycznym (Windows 10) wynik jest następujący. SDK to 2.1.2, a środowisko wykonawcze to 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

Na jednym z moich serwerów z systemem Windows Server 2016 z pakietem Windows Server Hosting Pack (bez SDK) wynik jest następujący. Brak zestawu SDK, środowisko wykonawcze to 2.0.3.

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Twoje zdrowie !

Hakan Çelik MK1
źródło
10

Dostępne są następujące polecenia .NET Core SDK 2.1 (v2.1.300) :

Aby wyświetlić listę wszystkich zainstalowanych zestawów .NET Core SDK, użyj: dotnet --list-sdks

Aby wyświetlić listę wszystkich zainstalowanych środowisk uruchomieniowych .NET Core, użyj dotnet --list-runtimes

(testowane w systemie Windows w momencie pisania, 03 czerwca 2018 i ponownie 23 sierpnia 2018)

Aktualizacja z 24 października 2018 r .: Lepsza opcja jest prawdopodobnie teraz dotnet --infow oknie terminala lub PowerShell, jak już wspomniano w innych odpowiedziach.

Manfred
źródło
Wszyscy możemy się uczyć. Ciekawe, aby poznać przyczynę przegłosowania. Być może zostaw komentarz, kiedy przegłosujesz?
Manfred
Nie przegłosowałem, ale spekuluję, że może tak być, ponieważ wspomniałeś o poleceniach „dostępnych z .NET Core SDK”, podczas gdy pytanie brzmi „Chcę sprawdzić serwer bez SDK”. Twoja odpowiedź zostałaby poprawiona, jeśli określisz, które z powyższych poleceń działają, gdy zainstalowany jest tylko środowisko wykonawcze .
ToolmakerSteve
@ToolmakerSteve Tak, o to może chodzić. Jednak nie mam środowiska bez zestawu SDK i nie chciałbym się starać, aby go usunąć ... Dziękuję jednak za komentarz. Bardzo mile widziane.
Manfred
5

W systemie Windows wystarczy otworzyć wiersz polecenia i wpisać:

dotnet --version

Jeśli zainstalowany jest szkielet .NET, otrzymasz aktualną zainstalowaną wersję

zobacz zrzut ekranu:

wprowadź opis zdjęcia tutaj

Eli Dagan
źródło
3
To daje wersję SDK, a nie wersję
uruchomieniową
1

Możesz też zajrzeć do środka

C: \ Program Files \ dotnet \ sdk

Zeus
źródło
0

Sprawdź, C:\Program Files\dotnet\shared\Microsoft.NETCore.Appktóre wersje środowiska wykonawczego mają tam katalogi. Źródło.

Wiele odpowiedzi tutaj myli SDK z Runtime, które są różne.

jaycer
źródło
0

Po wszystkich innych odpowiedziach może się to okazać przydatne.

Otwórz aplikację w Visual Studio. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy swój projekt. Kliknij Właściwości. Kliknij opcję Aplikacja. W obszarze „Target Framework” kliknij przycisk rozwijany i gotowe, wszystkie zainstalowane frameworki.

BTW - możesz teraz wybrać, który szkielet chcesz.

Baruch Atta
źródło
Korzystałem z programu Visual Studio 2017. YMMV.
Baruch Atta
-6

Nie wymaga procesu instalacji.

Przypiąłem „VSCore” do paska zadań (win10), więc otwórz go i otwórz menedżera zadań, wybierz proces „Visual Studio Core”, rozwiń lewą strzałkę, a nad którymkolwiek z nich proces potomny kliknij prawym przyciskiem myszy i kliknij „Otwórz lokalizację pliku” " menu.

Jeśli nie pamiętasz, gdzie jest zainstalowany, wyszukaj plik „Code.exe” na wszystkich dyskach twardych.

JoseRamos
źródło
1
Pytanie dotyczy .NET CORE, a nie ide VS CODE.
user5389726598465