Cara menentukan apakah .NET Core diinstal

302

Saya tahu bahwa untuk versi .NET yang lebih lama, Anda dapat menentukan apakah versi yang diberikan diinstal dengan mengikuti

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

Apakah ada metode resmi untuk menentukan apakah .NET Core diinstal?

(Dan maksud saya bukan SDK, saya ingin memeriksa server tanpa SDK, untuk menentukan apakah DotNetCore.1.0.0-WindowsHosting.exe sudah diinstal di dalamnya)

saya dapat melihat

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

dengan Versi # 1.0.11123.0 di mesin windows 7 saya, tapi saya tidak melihat hal yang sama pada mesin Windows 10 saya.

selamat datang
sumber
1
Pertanyaan bagus. Siapa pun yang mengikuti .NET Core tahu bahwa versi Runtime dan SDK adalah topik yang sangat membingungkan.
Sean
@ Ciramisu, Semua yang dicentang di bawah ini bekerja untuk saya, tetapi karena beberapa detail implementasi yang tidak relevan, saya pergi dengan Konfigurasi yang Diinginkan Negara, dan menggunakannya untuk memastikan bahwa server hosting windows dnc diinstal. (Yaitu saya punya Ensure = Absen di DotNetCore.1.0.0-WindowsServerHosting.exe dan Ensure = Hadir di DotnetCore.2.0.5-WindowsServerHosting.exe) (atau nama file lain yang Anda temukan inginkan). DSC menangani semua kekacauan yang terlibat dengan memeriksa untuk memastikan paket yang sesuai diinstal / dihapus.
weloytty
3
dotnet --list-sdks dan dotnet --list-runtimes tersedia di host saya dengan 2.1.300-preview1-008174 sebagai versi aktif
jumpercake
Jalankan perintah di bawah ini di powershell dotnet --info Source
manikanta kumar

Jawaban:

209

Menggunakan Powershell :

Runtimes:

(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
sumber
1
@MarceloFilho Versi apa yang Anda miliki? Anda bisa menggunakannya [System.Environment]::OSVersion. Saya menguji perintah yang disebutkan di atas menggunakan Windows 10 Versi 10.0.15063.0. Ini bekerja dengan baik.
Andriy Tolstoy
6
Saya dapat mengonfirmasi ini berfungsi dengan baik pada Windows server 2016 dan windows 10.
user5389726598465
1
Bukankah perintah dotnet hanya tersedia dengan SDK diinstal? Yang persis berlawanan dengan apa yang diminta OP.
Aurimas N.
@AurimasN. Tidak, perintah dotnet.exe tersedia dengan penyebaran SDK dan Runtime. SDK hanya menambahkan perintah CLI yang diperlukan, dan perpustakaan prasyarat, yang diperlukan untuk melakukan "dotnet.exe build" dan "dotnet.exe run" dari dalam suatu proyek.
Jason Mock
3
Bekerja di PowerShell pada Windows 10 tetapi saya lebih suka dotnet --infomenyarankan jawaban lain.
Manfred
345

Pertanyaan yang bagus, dan jawabannya tidak sederhana. Tidak ada perintah "tunjukkan semua versi inti internet", tetapi ada harapan.

EDIT:

Saya tidak yakin kapan itu ditambahkan, tetapi perintah info sekarang menyertakan informasi ini dalam outputnya. Ini akan mencetak runtime dan SDK yang diinstal, serta beberapa info lainnya:

dotnet --info

Jika Anda hanya ingin melihat SDK: dotnet --list-sdks

Jika Anda hanya ingin melihat runtimes yang diinstal: dotnet --list-runtimes

Saya menggunakan Windows, tetapi saya rasa itu akan bekerja pada Mac atau Linux juga dengan versi saat ini.

Juga, Anda dapat merujuk Arsip Unduhan .NET Core untuk membantu Anda menguraikan versi SDK.


INFORMASI TUA: Semua yang di bawah ini adalah informasi lama, yang kurang relevan, tetapi mungkin masih berguna.

Lihat Runtimes yang diinstal :

Buka C:\Program Files\dotnet\shared\Microsoft.NETCore.Appdi Windows Explorer

Lihat SDK yang diinstal :

Buka C:\Program Files\dotnet\sdkdi Windows Explorer

(Sumber untuk lokasi: Blog pengembang )


Selain itu, Anda dapat melihat terbaru Runtime dan SDK versi diinstal dengan mengeluarkan perintah ini pada command prompt:

dotnet Versi Runtime terbaru adalah yang pertama terdaftar. PENOLAKAN: Ini tidak lagi berfungsi, tetapi mungkin berfungsi untuk versi yang lebih lama.

dotnet --version DISCLAIMER versi SDK terbaru : Rupanya hasil ini dapat dipengaruhi oleh file konfigurasi global.json apa pun.


Di macOS Anda bisa memeriksa versi .net core dengan menggunakan perintah di bawah ini.

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

Di Ubuntu atau Alpine:

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

Ini akan mencantumkan folder dengan nama versi yang diinstal.

Sean
sumber
15
Pada macOS:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov
Dalam kasus saya, dotnet --version mengatakan 1.1.0, tetapi versi yang diinstal termasuk 1.1.2. Hanya untuk memeriksa, saya mengganti nama dotnet.exe, dan dotnet --version tidak menemukan versi apa pun. Saya kemudian menginstal ulang 1.1.2, dan dotnet --versi lagi mengatakan saya punya 1.1.0.
William Jockusch
1
@SergiiVolchkov terima kasih atas komentarnya. Bisakah Anda memberi tahu saya cara menghapus instalan dotnet core1.0.0 dari mac?
Pankaj Parkar
1
.NET Core 2.1.0 menambahkan "dotnet --list-runtimes" dan "dotnet --list-sdks"
b8adamson
1
dotnet --versiondaftar SDK yang digunakan, yang merupakan yang terbaru secara default, tetapi tidak selalu benar. Jika Anda memiliki file global.json dalam struktur folder Anda, itu akan menampilkan versi apa pun yang diatur dalam global.json, bukan yang terbaru.
Maíra Wenzel - MSFT
164

Jawaban yang benar untuk lingkungan runtime-only tanpa SDK, seperti server dengan paket Windows Hosting diinstal, adalah menjalankan PowerShell dengan perintah berikut:

dotnet --info

Per dokumentasi resmi :

  • The --versionopsi "Mencetak keluar versi NET Inti SDK digunakan." dan karena itu tidak berfungsi jika SDK tidak diinstal. Sedangkan...
  • The --infoopsi "Mencetak informasi rinci tentang perkakas CLI dan lingkungan, seperti sistem operasi saat ini, berkomitmen SHA untuk versi, dan informasi lainnya."

Inilah artikel resmi lain yang menjelaskan cara kerja .NET Core versioning . :)

Chiramisu
sumber
9
Yang luar biasa adalah ini adalah jawaban yang sebenarnya. Dan itu terkubur di bawah tumpukan jawaban dari orang-orang yang bahkan tidak repot-repot membaca pertanyaan dengan benar.
Jammer
--infotidak berfungsi di server saya, sedangkan --versiontidak berfungsi. Opsi info memberi saya:Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
ArieKanarie
@ArieKanarie Anda mungkin perlu memperbaiki menggunakan Alat Perbaikan Microsoft .NET Framework .
Chiramisu
106

Anda dapat memeriksa apakah dotnet.exe tersedia:

where dotnet

Anda kemudian dapat memeriksa versinya:

dotnet --version

UPDATE: Sekarang ada cara yang lebih baik untuk melakukan ini, yang dijelaskan dengan baik dalam banyak jawaban lain:

dotnet --info

Robert Paulsen
sumber
34
Ini melampaui versi dotnet CLI, bukan runtime .. Ini dua hal yang berbeda. Setelah CLI diinstal, bukan berarti runtime diinstal dan jika itu versi yang sama.
Aleksanderis
sshed ke server dengan hanya runtime yang diinstal untuk mengonfirmasi, itu tidak bekerja. Lihat jawaban ini sebagai gantinya .
gldraphael
49

Salah satu cara bodoh untuk menentukan apakah .NET Coresudah diinstal pada Windows adalah:

  • Tekan Windows+R
  • Tipe cmd
  • Pada prompt perintah, ketik dotnet --version

dotnet --versi

Jika .NET Coresudah diinstal, kita seharusnya tidak mendapatkan kesalahan dalam langkah-langkah di atas.

Mohammed Zameer
sumber
6
Lihat komentar di atas untuk jawaban yang sama: It outpus versi dotnet CLI, bukan runtime .. Ini dua hal yang berbeda. Setelah CLI diinstal, bukan berarti runtime diinstal dan jika itu versi yang sama
Michael Freidgeim
Nitpcking, tetapi Anda tidak dapat memiliki CLI yang berfungsi tanpa runtime diinstal. Jadi jika Anda memiliki CLI, Anda akan memiliki beberapa runtime, hanya saja itu mungkin versi yang sama sekali berbeda.
omajid
@ Tomajid Tidak yakin apa yang Anda bicarakan CLI. CLI yang saya maksudkan dalam jawaban saya adalah CLI prompt perintah default pada Windows 10 x64 yang diinstal / tersedia tanpa instalasi khusus
Mohammed Zameer
Ini bukan jawaban untuk pertanyaan itu.
Jammer
@ Jammer Saya sarankan Anda memberikan saran edit
Mohammed Zameer
20

(1) Jika Anda menggunakan sistem Window.

Buka prompt perintah.

 dotnet --version

(2) Jalankan perintah di bawah ini Jika Anda menggunakan sistem Linux.

dotnet --version

dotnet --info
Hiren Parghi
sumber
type dotnet --version- Tidak bekerja di windows 10. dotnet --versionberfungsi meskipun. Anda yakin dengan jawaban Anda atau apakah itu typekesalahan ketik? Kedua perintah linux bekerja pada Win 10 untuk saya.
Aditya
@Aditya setuju bahwa typeini adalah instruksi untuk pembaca dan bukan bagian dari perintah. Saya telah mengedit pos untuk mencocokkan.
JohnLBevan
Ya, itu instruksi.
Hiren Parghi
15

Saya bekerja terutama dengan mesin dan server pengembangan Windows.

Saya hanya ingin menunjukkan (setidaknya untuk NET.Core 2.0 dan di atas) satu-satunya yang diperlukan adalah untuk mengeksekusi dotnet --infodalam command prompt untuk mendapatkan informasi tentang versi terbaru yang diinstal. Jika .NET Core diinstal, Anda akan mendapatkan respons.

Pada mesin pengembangan saya (Windows 10) hasilnya adalah sebagai berikut. SDK 2.1.2 dan runtime 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

Di salah satu server saya yang menjalankan Windows Server 2016 dengan paket Windows Server Hosting (tanpa SDK) hasilnya adalah sebagai berikut. Tanpa SDK, runtime adalah 2.0.3.

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Bersulang !

Hakan Çelik MK1
sumber
10

Perintah berikut ini tersedia dengan .NET Core SDK 2.1 (v2.1.300) :

Untuk mendaftar semua .NET Core SDK yang digunakan, gunakan: dotnet --list-sdks

Untuk mendaftar semua runtime .NET Core yang terinstal, gunakan dotnet --list-runtimes

(diuji pada Windows pada saat penulisan, 03 Jun 2018, dan lagi pada 23 Agustus 2018)

Pembaruan pada 24 Oktober 2018: Opsi yang lebih baik mungkin sekarang dotnet --infodi terminal atau jendela PowerShell seperti yang telah disebutkan dalam jawaban lain.

Manfred
sumber
Kita semua bisa belajar. Penasaran ingin tahu alasan downvote. Mungkin meninggalkan komentar saat Anda downvote?
Manfred
Saya tidak downvote, tapi saya berspekulasi itu mungkin karena Anda menyebutkan perintah "tersedia dengan .NET Core SDK", sedangkan pertanyaan menyatakan "Saya ingin memeriksa server tanpa SDK". Jawaban Anda akan ditingkatkan jika Anda menentukan mana dari perintah di atas yang berfungsi ketika hanya runtime yang diinstal.
ToolmakerSteve
@ToolmakerSteve Ya, itu bisa jadi intinya. Saya tidak memiliki lingkungan, tanpa SDK dan tidak ingin pergi sejauh itu menghapusnya .... Terima kasih atas komentar Anda. Sangat dihargai.
Manfred
5

Di windows, Anda hanya perlu membuka command prompt dan ketik:

dotnet --version

Jika .net core framework terinstal, Anda akan mendapatkan versi terinstal saat ini

lihat tangkapan layar:

masukkan deskripsi gambar di sini

Eli Dagan
sumber
3
Ini memberi Anda versi SDK, bukan versi runtime
silkfire
1

Atau Anda bisa melihat ke dalam

C: \ Program Files \ dotnet \ sdk

Zeus
sumber
0

Lihat C:\Program Files\dotnet\shared\Microsoft.NETCore.Appuntuk melihat versi runtime mana yang memiliki direktori di sana. Sumber.

Banyak jawaban di sini membingungkan SDK dengan Runtime, yang berbeda.

jaycer
sumber
0

Setelah semua jawaban lain, ini mungkin terbukti bermanfaat.

Buka aplikasi Anda di Visual Studio. Di Solutions Explorer, klik kanan proyek Anda. Klik Properti. Klik Aplikasi. Di bawah "Target Framework" klik tombol dropdown dan di sana Anda, semua kerangka kerja yang diinstal.

BTW - Anda sekarang dapat memilih kerangka mana yang Anda inginkan.

Baruch Atta
sumber
Saya menggunakan Visual Studio 2017. YMMV.
Baruch Atta
-6

Tidak perlu proses instalasi.

Saya telah menyematkan "VSCore" di taskbar saya (win10), jadi buka, dan buka task manager pilih proses "Visual Studio Core" perluas panah kiri dan di atas mereka mana saja, proses kanan anak tombol di atasnya dan klik di "Buka Lokasi File " Tidak bisa.

Jika Anda tidak ingat di mana pencarian file "Code.exe" diinstal di semua hard drive Anda.

JoseRamos
sumber
1
Pertanyaannya adalah tentang .NET CORE bukan ide VS CODE.
user5389726598465