วิธีการตรวจสอบว่ามีการติดตั้ง. NET Core


302

ฉันรู้ว่าสำหรับ. NET รุ่นเก่าคุณสามารถตรวจสอบว่ามีการติดตั้งรุ่นที่กำหนดโดยทำตาม

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

มีวิธีการอย่างเป็นทางการของการกำหนดว่า .NET หลักมีการติดตั้ง?

(และฉันไม่ได้หมายถึง SDK ฉันต้องการตรวจสอบเซิร์ฟเวอร์ที่ไม่มี SDK เพื่อตรวจสอบว่ามี DotNetCore.1.0.0-WindowsHosting.exe ติดตั้งอยู่หรือไม่)

ฉันเห็น

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

ด้วย Version # 1.0.11123.0 บนเครื่อง windows 7 ของฉัน แต่ฉันไม่เห็นสิ่งเดียวกันในเครื่อง Windows 10 ของฉัน


1
คำถามที่ดี. ใครก็ตามที่ติดตาม. NET Core รู้ว่าการกำหนดเวอร์ชันรันไทม์และ SDK เป็นหัวข้อที่สับสนมาก
ฌอน

@Chiramisu ทุกรายการที่ตรวจสอบด้านล่างใช้งานได้สำหรับฉัน แต่เนื่องจากรายละเอียดการใช้งานที่ไม่เกี่ยวข้องฉันจึงไปพร้อมกับการกำหนดค่าสถานะที่ต้องการและใช้เพื่อให้แน่ใจว่ามีการติดตั้งโฮสต์เซิร์ฟเวอร์ dnc windows (เช่นฉันมี Sure = ขาดอยู่ใน DotNetCore.1.0.0-WindowsServerHosting.exe และ Verify = นำเสนอบน DotnetCore.2.0.5-WindowsServerHosting.exe) (หรือชื่อไฟล์อื่น ๆ ที่คุณต้องการ) DSC จัดการกับระเบียบทั้งหมดที่เกี่ยวข้องกับการตรวจสอบเพื่อให้แน่ใจว่ามีการติดตั้ง / ถอนการติดตั้งแพ็คเกจที่เหมาะสม
weloytty

3
dotnet --list-sdks และ dotnet - list-runtimes พร้อมใช้งานบนโฮสต์ของฉันด้วย 2.1.300-preview1-008174 เป็นเวอร์ชันที่ใช้งานได้
jumpercake

เรียกใช้คำสั่งนี้ด้านล่างใน powershell dotnet
manikanta kumar

คำตอบ:


209

ใช้Powershell :

runtimes:

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

SDKs:

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

1
@MarceloFilho คุณมีรุ่นไหน? คุณสามารถใช้มัน[System.Environment]::OSVersionได้ ฉันทดสอบคำสั่งที่กล่าวถึงข้างต้นโดยใช้ Windows 10 เวอร์ชัน 10.0.15063.0 มันใช้งานได้ดี
Andriy Tolstoy

6
ฉันสามารถยืนยันได้ว่าทำงานได้อย่างสมบูรณ์บน Windows Server 2016 และ windows 10
user5389726598465

1
คำสั่ง dotnet ไม่สามารถใช้งานได้เฉพาะกับ SDK ที่ติดตั้งหรือไม่ ซึ่งตรงข้ามกับสิ่งที่ OP ถาม
Aurimas N.

@AurimasN ไม่คำสั่ง dotnet.exe พร้อมใช้งานกับการปรับใช้ SDK และ Runtime SDK จะเพิ่มคำสั่ง CLI ที่จำเป็นและไลบรารีที่จำเป็นต้องมีเพื่อดำเนินการ "dotnet.exe build" และ "dotnet.exe run" จากภายในโครงการ
Jason Mock

3
ใช้งานได้ใน PowerShell บน Windows 10 แต่ฉันชอบที่dotnet --infoแนะนำในคำตอบอื่น ๆ
Manfred

345

เป็นคำถามที่ยอดเยี่ยมและคำตอบนั้นไม่ง่ายเลย ไม่มีคำสั่ง "แสดงทั้งหมด. net core version" แต่มีความหวัง

แก้ไข:

ฉันไม่แน่ใจว่าเมื่อมันถูกเพิ่มเข้ามา แต่ตอนนี้คำสั่ง info รวมข้อมูลนี้ไว้ในผลลัพธ์ มันจะพิมพ์ runtimes และ SDK ที่ติดตั้งรวมทั้งข้อมูลอื่น ๆ :

dotnet --info

หากคุณต้องการเห็น SDK เท่านั้น: dotnet --list-sdks

หากคุณต้องการเห็น runtimes ที่ติดตั้ง: dotnet --list-runtimes

ฉันใช้ Windows แต่ฉันเดาว่ามันใช้ได้กับ Mac หรือ Linux ด้วยเวอร์ชันปัจจุบัน

นอกจากนี้คุณสามารถอ้างอิง. NET Core Download Archiveเพื่อช่วยคุณถอดรหัสรุ่น SDK ได้


ข้อมูลเก่า: ทุกสิ่งที่อยู่ด้านล่างจุดนี้เป็นข้อมูลเก่าซึ่งมีความเกี่ยวข้องน้อยกว่า แต่อาจมีประโยชน์

ดูRuntimes ที่ติดตั้ง:

เปิดC:\Program Files\dotnet\shared\Microsoft.NETCore.Appใน Windows Explorer

ดูSDK ที่ติดตั้ง:

เปิดC:\Program Files\dotnet\sdkใน Windows Explorer

(แหล่งที่มาสำหรับสถานที่: บล็อกของนักพัฒนา )


นอกจากนี้คุณสามารถดูเวอร์ชันล่าสุดของ Runtime และ SDK ที่ติดตั้งโดยการออกคำสั่งเหล่านี้ที่ command prompt:

dotnet เวอร์ชันรันไทม์ล่าสุดเป็นสิ่งแรกที่แสดง การปฏิเสธความรับผิด:สิ่งนี้ไม่ทำงานอีกต่อไป แต่อาจใช้งานได้กับรุ่นที่เก่ากว่า

dotnet --version เวอร์ชั่น SDK ล่าสุดการ ปฏิเสธความรับผิด:เห็นได้ชัดว่าผลลัพธ์นี้อาจได้รับผลกระทบจากไฟล์ config global.json


ใน macOS คุณสามารถตรวจสอบ. net core version โดยใช้คำสั่งด้านล่าง

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

บน Ubuntu หรือ Alpine:

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

มันจะแสดงรายการโฟลเดอร์ที่มีชื่อรุ่นที่ติดตั้ง


15
ใน macOS:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov

ในกรณีของฉัน dotnet --version บอกว่า 1.1.0 แต่เวอร์ชันที่ติดตั้งนั้นรวม 1.1.2 เพียงแค่ตรวจสอบฉันเปลี่ยนชื่อ dotnet.exe และ dotnet --version ไม่พบรุ่นใด ๆ ฉันติดตั้ง 1.1.2 อีกครั้งและ dotnet --version อีกครั้งบอกว่าฉันมี 1.1.0
วิลเลียม Jockusch

1
@SergiiVolchkov ขอบคุณสำหรับความคิดเห็น คุณช่วยบอกวิธีถอนการติดตั้ง dotnet core1.0.0 จาก mac ได้ไหม
Pankaj Parkar

1
.NET Core 2.1.0 เพิ่ม "dotnet --list-runtimes" และ "dotnet
--list

1
dotnet --versionแสดงรายการ SDK ที่ใช้งานซึ่งเป็นค่าเริ่มต้นล่าสุด แต่ไม่จริงเสมอไป หากคุณมีไฟล์ global.json ในโครงสร้างโฟลเดอร์ของคุณไฟล์ดังกล่าวจะแสดงรุ่นใดก็ตามที่ตั้งค่าไว้ใน global.json ไม่ใช่ไฟล์ล่าสุด
Maíra Wenzel - MSFT

164

คำตอบที่ถูกต้องสำหรับสภาพแวดล้อมรันไทม์เท่านั้นที่ไม่มี SDK เช่นเซิร์ฟเวอร์ที่ติดตั้งแพ็คเกจ Windows Hosting คือการเรียกใช้ PowerShell ด้วยคำสั่งต่อไปนี้:

dotnet --info

ตามเอกสารอย่างเป็นทางการ :

  • --versionตัวเลือก "พิมพ์ออกรุ่นของ .NET หลัก SDK ในการใช้งาน." และดังนั้นจึงไม่ทำงานหากไม่ได้ติดตั้ง SDK ในขณะที่ ...
  • --infoตัวเลือก "พิมพ์ข้อมูลรายละเอียดเกี่ยวกับการขับรถ CLI และสิ่งแวดล้อมเช่นระบบปฏิบัติการปัจจุบันกระทำ SHA สำหรับรุ่นและข้อมูลอื่น ๆ ."

นี่เป็นอีกหนึ่งบทความอย่างเป็นทางการอธิบายวิธี.NET แกนเวอร์ชันงาน :)


9
สิ่งที่เหลือเชื่อนี่คือคำตอบที่แท้จริง และมันถูกฝังอยู่ใต้กองคำตอบจากคนที่ไม่สนใจอ่านคำถามอย่างถูกต้อง
Jammer

--infoไม่ทำงานบนเซิร์ฟเวอร์ของฉันในขณะที่--versionใช้งานได้ ตัวเลือกข้อมูลให้ฉัน: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 ซ่อมเครื่องมือ
Chiramisu

106

คุณสามารถตรวจสอบว่า dotnet.exe พร้อมใช้งานหรือไม่:

where dotnet

จากนั้นคุณสามารถตรวจสอบรุ่น:

dotnet --version

UPDATE: ขณะนี้มีวิธีที่ดีกว่าในการทำสิ่งนี้ซึ่งอธิบายได้ดีในคำตอบอื่น ๆ :

dotnet --info


34
มัน outpus dotnet CLI เวอร์ชั่นไม่ใช่ runtime .. มันต่างกันสองอย่าง เมื่อติดตั้ง CLI ไม่ได้หมายความว่าติดตั้งรันไทม์และหากเป็นเวอร์ชั่นเดียวกัน
Aleksanderis

sshแก้ไขไปยังเซิร์ฟเวอร์ที่ติดตั้งเฉพาะรันไทม์เพื่อยืนยันว่าใช้งานไม่ได้ ดูคำตอบนี้แทน
gldraphael

49

หนึ่งในวิธีการทดสอบการ.NET Coreติดตั้งบน Windows คือ:

  • กดWindows+R
  • ชนิด cmd
  • บนพรอมต์คำสั่งพิมพ์ dotnet --version

dotnet - รุ่น

หาก.NET Coreมีการติดตั้งเราไม่ควรได้รับข้อผิดพลาดใด ๆ ในขั้นตอนข้างต้น


6
ดูความคิดเห็นด้านบนเพื่อคำตอบเดียวกัน: มัน outpus dotnet CLI เวอร์ชันไม่ใช่ runtime .. มันเป็นสองสิ่งที่แตกต่างกัน เมื่อติดตั้ง CLI ไม่ได้หมายความว่าติดตั้งรันไทม์และหากเป็นเวอร์ชั่นเดียวกัน
Michael Freidgeim

Nitpcking แต่คุณไม่สามารถมี CLI ที่ทำงานได้โดยไม่ต้องติดตั้งรันไทม์ ดังนั้นหากคุณมี CLI คุณจะมีรันไทม์บางอย่างเพียงว่ามันอาจเป็นเวอร์ชั่นที่แตกต่างอย่างสิ้นเชิง
omajid

@omajid ไม่แน่ใจว่า CLI ที่คุณกำลังพูดถึงคืออะไร CLI ที่ฉันอ้างถึงในคำตอบของฉันคือพรอมต์คำสั่งเริ่มต้น CLI บน Windows 10 x64 ซึ่งติดตั้ง / ใช้งานได้โดยไม่ต้องมีการติดตั้งพิเศษ
Mohammed Zameer

นี่ไม่ใช่คำตอบสำหรับคำถาม
Jammer

@Jammer ฉันขอแนะนำให้คุณแก้ไขข้อเสนอแนะ
Mohammed Zameer

20

(1) ถ้าคุณอยู่ในระบบ Window

เปิดพรอมต์คำสั่ง

 dotnet --version

(2) เรียกใช้คำสั่งด้านล่างหากคุณใช้ระบบ Linux

dotnet --version

dotnet --info

type dotnet --version- ใช้งานไม่ได้กับ windows 10. ใช้dotnet --versionงานได้ คุณแน่ใจเกี่ยวกับคำตอบของคุณหรือว่าtypeพิมพ์ผิด? คำสั่ง linux ทั้งสองทำงานบน Win 10 สำหรับฉัน
Aditya

@Aditya ยอมรับว่าtypeเป็นคำสั่งสำหรับผู้อ่านมากกว่าส่วนหนึ่งของคำสั่ง ฉันแก้ไขโพสต์เพื่อให้ตรงกับ
JohnLBevan

ใช่มันเป็นคำสั่ง
Hiren Parghi

15

ฉันทำงานกับเครื่องและเซิร์ฟเวอร์ในการพัฒนา Windows เป็นหลัก

ฉันแค่ต้องการชี้ให้เห็น (อย่างน้อยสำหรับ NET.Core 2.0 ขึ้นไป) สิ่งเดียวที่จำเป็นคือการดำเนินการdotnet --infoใน command prompt เพื่อรับข้อมูลเกี่ยวกับเวอร์ชั่นล่าสุดที่ติดตั้ง หากติดตั้ง. NET Core คุณจะได้รับการตอบกลับ

บนเครื่องพัฒนาของฉัน (Windows 10) ผลลัพธ์จะเป็นดังนี้ SDK คือ 2.1.2 และรันไทม์คือ 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

ในหนึ่งในเซิร์ฟเวอร์ของฉันที่ใช้ Windows Server 2016 ด้วยผลลัพธ์ Windows Server Hosting pack (ไม่มี SDK) มีดังนี้ ไม่มี SDK รันไทม์คือ 2.0.3

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

ไชโย!


10

คำสั่งต่อไปนี้สามารถใช้ได้กับ. NET Core SDK 2.1 (v2.1.300) :

หากต้องการแสดงรายการ. NET Core SDK ที่ติดตั้งทั้งหมดให้ใช้: dotnet --list-sdks

ในการแสดงรายการรันไทม์. NET Core ที่ติดตั้งทั้งหมดใช้ dotnet --list-runtimes

(ทดสอบบน Windows เมื่อเขียน, 3 มิ.ย. 2018 และอีกครั้งในวันที่ 23 ส.ค. 2018)

อัปเดตตั้งแต่วันที่ 24 ต.ค. 2561: ตอนนี้ตัวเลือกที่ดีกว่าอาจอยู่dotnet --infoในหน้าต่างเทอร์มินัลหรือ PowerShell ดังที่ได้กล่าวไปแล้วในคำตอบอื่น ๆ


เราทุกคนสามารถเรียนรู้ อยากรู้เหตุผลของการโหวต อาจแสดงความคิดเห็นเมื่อคุณลงคะแนน?
Manfred

ฉันไม่ได้ลงคะแนน แต่ฉันคิดว่าอาจเป็นเพราะคุณพูดถึงคำสั่ง "พร้อมใช้งานกับ. NET Core SDK" ในขณะที่คำถามระบุว่า "ฉันต้องการตรวจสอบเซิร์ฟเวอร์ที่ไม่มี SDK" คำตอบของคุณจะได้รับการปรับปรุงหากคุณพิจารณาว่าคำสั่งใดข้างต้นทำงานเมื่อติดตั้งเฉพาะรันไทม์
ToolmakerSteve

@ToolmakerSteve ใช่นั่นอาจเป็นประเด็น ฉันไม่มีสภาพแวดล้อม แต่ไม่มี SDK และไม่ต้องการลบความยาวนั้นออก .... ขอบคุณสำหรับความคิดเห็นของคุณ ชื่นชมมาก
เฟรด

5

บน windows คุณจะต้องเปิดพรอมต์คำสั่งและพิมพ์:

dotnet --version

หาก. net core framework ที่ติดตั้งคุณจะได้รับเวอร์ชันที่ติดตั้งปัจจุบัน

ดูภาพหน้าจอ:

ป้อนคำอธิบายรูปภาพที่นี่


3
สิ่งนี้ให้เวอร์ชั่น SDK ไม่ใช่เวอร์ชันรันไทม์
silkfire


0

ค้นหาC:\Program Files\dotnet\shared\Microsoft.NETCore.Appเพื่อดูว่าเวอร์ชันใดของรันไทม์ที่มีไดเร็กทอรีอยู่ แหล่ง

คำตอบมากมายที่นี่ทำให้เกิดความสับสนกับ SDK กับรันไทม์ซึ่งแตกต่างกัน


0

หลังจากคำตอบอื่น ๆ ทั้งหมดนี่อาจเป็นประโยชน์

เปิดแอปพลิเคชันของคุณใน Visual Studio ใน Solutions Explorer คลิกขวาที่โครงการของคุณ คลิกคุณสมบัติ คลิกแอปพลิเคชัน ภายใต้ "กรอบงานเป้าหมาย" คลิกที่ปุ่มดรอปดาวน์แล้วคุณจะอยู่กับกรอบงานที่ติดตั้งทั้งหมด

BTW - ตอนนี้คุณสามารถเลือกกรอบที่คุณต้องการ


ฉันใช้ Visual Studio 2017 YMMV
บารุคอัตตา

-6

ไม่จำเป็นต้องมีกระบวนการติดตั้ง

ฉันปักหมุด "VSCore" บนทาสก์บาร์ของฉัน (win10) แล้วเปิดมันขึ้นมาและเปิดตัวจัดการงานเลือกกระบวนการ "Visual Studio Core" ขยายลูกศรซ้ายและเหนือปุ่มลูกด้านขวาของกระบวนการและคลิกที่ "Open File Location เมนู "

หากคุณจำไม่ได้ว่าติดตั้งที่ไหนค้นหาไฟล์ "Code.exe" ในฮาร์ดไดรฟ์ทั้งหมดของคุณ


1
คำถามเกี่ยวกับ. NET CORE ไม่ใช่ IDE VS CODE
user5389726598465
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.