.NET Core'un yüklü olup olmadığı nasıl belirlenir


302

.NET'in eski sürümleri için, belirli bir sürümün yüklenip yüklenmediğini aşağıdakileri izleyerek belirleyebileceğinizi biliyorum.

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

.NET Core'un yüklü olup olmadığını belirlemek için resmi bir yöntem var mı ?

(Ve SDK demek istemiyorum, SDK'sız bir sunucuyu kontrol etmek istiyorum, üzerinde DotNetCore.1.0.0-WindowsHosting.exe yüklü olup olmadığını belirlemek için)

görebiliyorum

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

Windows 7 makinemde 1.0.11123.0 Sürümü # ile, ancak Windows 10 makinemde aynı şeyleri görmüyorum.


1
İyi soru. .NET Core'u izleyen herkes, Çalışma Zamanı ve SDK sürümünün çok kafa karıştırıcı bir konu olduğunu bilir.
Sean

@Chiramisu, Aşağıdaki işaretli olanların tümü benim için çalıştı, ancak bazı alakasız uygulama ayrıntıları nedeniyle, İstenen Durum Yapılandırması ile gittim ve dnc windows sunucu barındırma yüklendiğinden emin olmak için kullandım. (Yani Bence = Yok noktasında DotNetCore.1.0.0-WindowsServerHosting.exe ve Ensure = Şu anda DotnetCore.2.0.5-WindowsServerHosting.exe üzerinde mevcut) (veya istediğiniz diğer dosya adlarını bulabilirsiniz). DSC, uygun paketin yüklendiğinden / kaldırıldığından emin olmak için denetimle ilgili tüm karmaşaları işler.
weloytty

3
dotnet --list-sdks ve dotnet --list-runtimes ev sahibimde mevcut sürüm olarak 2.1.300-preview1-008174 ile mevcut
jumpercake

Bu komutu powershell dotnet komutunda çalıştırın
info

Yanıtlar:


209

Powershell'i kullanma :

Runtimes:

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

SDK'ler:

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

1
@MarceloFilho Hangi sürüme sahipsiniz? Bunu kullanarak alabilirsiniz [System.Environment]::OSVersion. Yukarıda belirtilen komutları Windows 10 Sürüm 10.0.15063.0 kullanarak test ettim. İyi çalışıyor.
Andriy Tolstoy

6
Bunun Windows Server 2016 ve Windows 10'da mükemmel çalıştığını onaylayabilirim.
user5389726598465

1
Dotnet komutu yalnızca SDK takılıyken kullanılamaz mı? Hangi OP sordu tam tersi oldu.
Aurimas N.Haziran

@AurimasN. Hayır, dotnet.exe komutu hem SDK hem de Çalışma Zamanı dağıtımlarında kullanılabilir. SDK, bir projeden "dotnet.exe derlemesi" ve "dotnet.exe çalıştırması" gerçekleştirmek için gerekli olan CLI komutlarını ve önkoşul kitaplıklarını ekler.
Jason Mock

3
Windows 10'da PowerShell'de çalışır, ancak dotnet --infodiğer yanıtlarda önerilmesini tercih ederim .
Manfred

345

Harika bir soru ve cevap basit değil. "Bana tüm .net çekirdek sürümlerini göster" komutu yoktur, ancak umut vardır.

DÜZENLE:

Ne zaman eklendiğinden emin değilim, ama info komutu şimdi bu bilgiyi çıktısına dahil ediyor. Yüklü çalışma zamanlarını ve SDK'ları ve diğer bazı bilgileri yazdırır:

dotnet --info

Yalnızca SDK'ları görmek istiyorsanız: dotnet --list-sdks

Yalnızca yüklü çalışma zamanlarını görmek istiyorsanız: dotnet --list-runtimes

Windows'tayım, ancak Mac veya Linux'ta geçerli bir sürümle de çalışacağını tahmin ediyorum.

Ayrıca, SDK sürümlerini deşifre etmenize yardımcı olması için .NET Core İndirme Arşivine başvurabilirsiniz .


ESKİ BİLGİ: Bu noktanın altındaki her şey daha az alakalı olan ancak yine de faydalı olabilecek eski bilgilerdir.

Yüklü bakın Runtimes :

C:\Program Files\dotnet\shared\Microsoft.NETCore.AppWindows Gezgini'nde aç

Kurulu SDK'lara bakın :

C:\Program Files\dotnet\sdkWindows Gezgini'nde aç

(Konumlar için kaynak: Bir geliştiricinin blogu )


Ayrıca , komut isteminde şu komutları vererek en son Çalışma Zamanı ve SDK sürümlerini görebilirsiniz :

dotnet Listelenen ilk şey en son Çalışma Zamanı sürümü. YASAL UYARI: Bu artık çalışmaz, ancak eski sürümler için çalışabilir.

dotnet --version En son SDK sürümü YASAL UYARI: Görünüşe göre bunun sonucu herhangi bir global.json yapılandırma dosyalarından etkilenebilir.


MacOS'ta aşağıdaki komutu kullanarak .net çekirdek sürümünü kontrol edebilirsiniz.

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

Ubuntu veya Alpine'de:

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

Yüklü sürüm adı olan klasörü listeler.


15
ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
MacOS'ta

Benim durumumda, dotnet --version 1.1.0 dedi, ancak yüklü sürümler 1.1.2 içeriyordu. Sadece kontrol etmek için dotnet.exe'yi yeniden adlandırdım ve dotnet --version herhangi bir sürüm bulamadı. Daha sonra 1.1.2'yi yeniden yükledim ve dotnet --version yine 1.1.0 olduğumu söyledi.
William Jockusch

1
@SergiiVolchkov yorumunuz için teşekkürler. Dotnet core1.0.0'ı mac'tan nasıl kaldıracağımı söyleyebilir misiniz?
Pankaj Parkar

1
.NET Core 2.1.0, "dotnet --list-runtimes" ve "dotnet --list-sdks"
ekler

1
dotnet --versionkullanımda olan ve varsayılan olarak en son olan ancak her zaman doğru olmayan SDK'yı listeler. Klasör yapınızda bir global.json dosyanız varsa, global.json'da ayarlanmış olan en son sürümü görüntülemez.
Maíra Wenzel - MSFT

164

Windows Hosting paketinin yüklü olduğu bir sunucu gibi SDK'sı olmayan yalnızca çalışma zamanı ortamları için doğru yanıt, PowerShell'i aşağıdaki komutla çalıştırmaktır:

dotnet --info

Başına resmi belgeler :

  • --versionSeçenek "kullanımda .NET Çekirdek SDK sürümü dışarı yazdırır." SDK kurulu değilse çalışmaz. Buna karşılık...
  • --infoSeçeneği "Böyle geçerli işletim sistemi olarak CLI kalıp ve çevre hakkında ayrıntılı bilgi dışarı Baskılar, sürümü ve diğer bilgiler için SHA taahhüt."

İşte .NET Core sürümlemenin nasıl çalıştığını açıklayan başka bir resmi makale . :)


9
İnanılmaz olan asıl cevap bu. Ve soruyu doğru okumaya bile bile uğramayan insanlardan gelen bir cevap yığınının altına gömüldü.
Jammer

--infosunucumda --versionçalışmıyor , oysa çalışıyor. Bilgi seçeneği bana verir:Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
ArieKanarie

@ArieKanarie Microsoft .NET Framework Onarım Aracı'nı kullanarak onarmanız gerekebilir .
Chiramisu

106

Dotnet.exe dosyasının kullanılabilir olup olmadığını kontrol edebilirsiniz:

where dotnet

Daha sonra sürümü kontrol edebilirsiniz:

dotnet --version

GÜNCELLEME: Şimdi bunu yapmanın daha iyi bir yolu var, bu da diğer birçok cevapta iyi açıklanmıştır:

dotnet --info


34
Dotnet CLI sürümünü değil, çalışma zamanını aşar .. İki farklı şey. CLI'nin yüklü olması, çalışma zamanının yüklü olduğu ve aynı sürüm olup olmadığı anlamına gelmez.
Aleksanderis

sshonaylamak için sadece çalışma zamanı yüklü bir sunucuya düzenlenmiş, çalışmıyor. Bunun yerine bu cevaba bakınız .
gldraphael

49

.NET CoreWindows'a yüklenip yüklenmediğini belirlemenin manken yollarından biri:

  • Basın Windows+R
  • tip cmd
  • Komut istemine şunu yazın dotnet --version

dotnet - sürüm

Yüklü ise .NET Core, yukarıdaki adımlarda herhangi bir hata almamalıyız.


6
Bkz yukarıdaki yorumunu aynı cevabı: Bu outpus dotnet CLI sürümü değil çalışma zamanı .. İki farklı şeyler.
CLI'nin

Nitpcking, ancak bir çalışma zamanı yüklü olmadan çalışan bir CLI'nız olamaz. Eğer bir CLI varsa, olacak Yani bazı çalışma zamanını, bunun tamamen farklı bir sürümü olabilir sadece var.
omajid

@omajid Hangi CLI'den bahsettiğinizden emin değilim. Cevabımda bahsettiğim CLI, Windows 10
x64'teki

Bu sorunun cevabı değil.
Jammer

@Jammer Bir düzenleme önerisi sunmanızı öneririm
Mohammed Zameer

20

(1) Pencere sistemindeyseniz.

Komut istemini açın.

 dotnet --version

(2) Linux sistemindeyseniz aşağıdaki komutu çalıştırın.

dotnet --version

dotnet --info

type dotnet --version- Windows 10'da çalışmaz dotnet --version. Cevabınızdan emin typemisiniz yoksa bu bir yazım hatası mıydı? Her iki linux komutu da benim için Win 10'da çalışıyor.
Aditya

@Aditya type, komutun bir parçası olmaktan ziyade okuyucuya bir talimat olduğunu düşünüyor . Yayını eşleşecek şekilde düzenledim.
JohnLBevan

Evet, bir talimattı.
Hiren Parghi

15

Öncelikle Windows geliştirme makineleri ve sunucularıyla çalışıyorum.

Sadece işaret etmek istedim (en azından NET.Core 2.0 ve üstü için) gereken tek şey dotnet --info, en son sürüm hakkında bilgi almak için bir komut isteminde yürütmektir . .NET Core yüklüyse bazı yanıtlar alırsınız.

Geliştirme makinemde (Windows 10) sonuç aşağıdaki gibidir. SDK 2.1.2 ve çalışma zamanı 2.0.3'tür.

.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

Windows Server 2016 ile Windows Server Hosting paketi (SDK yok) çalıştıran sunucularımdan birinde sonuç aşağıdaki gibidir. SDK yok, çalışma zamanı 2.0.3.

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Şerefe!


10

.NET Core SDK 2.1 (v2.1.300) ile aşağıdaki komutlar kullanılabilir :

Yüklü tüm .NET Core SDK'larını listelemek için şunu kullanın: dotnet --list-sdks

Yüklü tüm .NET Core çalışma zamanlarını listelemek için şunu kullanın: dotnet --list-runtimes

(Windows'ta yazılı olarak 03 Haziran 2018 ve 23 Ağustos 2018'de yeniden test edilmiştir)

24 Ekim 2018'den itibaren güncelleme: Daha iyi seçenek, muhtemelen dotnet --infodiğer yanıtlarda belirtildiği gibi bir terminalde veya PowerShell penceresinde.


Hepimiz öğrenebiliriz. Downvote nedenini bilmek meraklı. Belki indirdiğinizde bir yorum bırakın?
Manfred

Ben aşağı itmedim, ama ben ".NET Core SDK ile kullanılabilir" komutları, "soru" SDK olmadan bir sunucuyu kontrol etmek istiyorum "söz çünkü olabilir spekülasyon olabilir. Yalnızca çalışma zamanı yüklendiğinde yukarıdaki komutlardan hangisinin çalışacağını belirlerseniz, yanıtınız iyileştirilir .
ToolmakerSteve

@ToolmakerSteve Evet, mesele bu olabilir. SDK'sız bir ortamım yok ve bu süreyi kaldırmak istemiyorum .... Yorumunuz için teşekkürler. Çok müteşekkirim.
Manfred

5

Windows'da, yalnızca komut istemini açmanız ve şunu yazmanız gerekir:

dotnet --version

Yüklü .net çekirdek çerçevesi mevcut yüklü sürümü alırsınız

ekran görüntüsüne bakın:

resim açıklamasını buraya girin


3
Bu size SDK sürümünü verir, çalışma zamanı sürümünü değil
silkfire

1

Alternatif olarak sadece içine bakabilirsiniz

C: \ Program Dosyaları \ dotnet \ sdk


0

Çalışma C:\Program Files\dotnet\shared\Microsoft.NETCore.Appzamanının hangi sürümlerinin orada dizinleri olduğunu görmek için bakın. Kaynak.

Buradaki yanıtların çoğu SDK'yı Çalışma Zamanı ile karıştırır ve bunlar farklıdır.


0

Diğer tüm cevaplardan sonra, bu yararlı olabilir.

Uygulamanızı Visual Studio'da açın. Solutions Explorer'da projenizi sağ tıklayın. Özellikler'i tıklayın. Uygulama'ya tıklayın. "Hedef Çerçeve" nin altındaki açılır düğmeyi tıklayın ve yüklü çerçevelerin hepsi sizsiniz.

BTW - şimdi istediğiniz çerçeveyi seçebilirsiniz.


Visual Studio 2017'yi kullandım. YMMV.
Baruch Atta

-6

Bir kurulum işlemine gerek yoktur.

Ben görev çubuğumda (win10) "VSCore" sabitlenmiş, bu yüzden açın, ve bir görev yöneticisi açmak "Visual Studio Core" işlemi sol ok genişletmek ve herhangi biri üzerinde üst işlem sağ düğmesi ve "Dosya Konumunu Aç" ı tıklatın " Menü.

Nerede yüklü olduğunu hatırlamıyorsanız, tüm sabit disklerinizde "Code.exe" dosyasını arayın.


1
Soru, .NET CORE ile ilgili değil, ide VS CODE ile ilgilidir.
user5389726598465
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.