Bagaimana cara menemukan versi .NET?

258

Bagaimana cara mengetahui versi .NET yang diinstal?

Saya mencari sesuatu yang sederhana seperti "java -version" yang bisa saya ketik di command prompt dan itu memberitahu saya versi saat ini terinstal.

Saya lebih baik menambahkan bahwa Visual Studio mungkin tidak diinstal - ini biasanya sesuatu yang ingin saya ketahui tentang mesin klien.

sepang
sumber
2
Pergi untuk menjalankan dan menjalankan perintah ini: wmic / namespace: \\ root \ cimv2 path win32_product di mana "name like '%%. NET %%'" dapatkan versi
HENG Vongkol

Jawaban:

250

Cukup ketikkan salah satu dari perintah di bawah ini untuk memberi Anda versi terbaru di baris pertama.

1. CSC
2. GACUTIL /l ?
3. CLRVER

Anda hanya dapat menjalankan ini dari prompt perintah Visual Studio jika Anda memiliki Visual Studio diinstal, atau jika Anda memiliki .NET framework SDK, maka prompt perintah SDK.

4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Perintah terakhir (5) akan mencantumkan semua versi (kecuali 4.5) .NET yang diinstal, yang terbaru terlebih dahulu .
Anda perlu menjalankan perintah ke-4 untuk melihat apakah .NET 4.5 diinstal.

Tiga opsi lain dari prompt perintah PowerShell diberikan di bawah ini.

6.   [environment]::Version
7.   $PSVersionTable.CLRVersion
8.   gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 |
     where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release

Perintah terakhir (8) akan memberi Anda semua versi, termasuk .NET 4.5.

Binoj Antony
sumber
6
'CSC' hanya akan berfungsi dari prompt perintah Visual Studio (secara default). Itu juga hanya akan memberi Anda versi maksimum kerangka .NET bahwa versi target kompiler. - Jika Anda sudah menginstal VS2005 & VS2008, versi CSC yang berbeda akan melaporkan versi yang berbeda.
Matt Lacey
15
cscmenghasilkan versi dari kompiler C #, bukan versi .NET Framework.
Timwi
4
perintah terakhir tidak mengembalikan versi 4.5 walaupun saya pikir saya sudah menginstalnya. Jawabannya di stackoverflow.com/questions/3487265/… memasukkannya.
Pendidik
2
Perintah terakhir tidak menunjukkan versi terbaru. Kita dapat mencari versi di appwiz.cpl atau perintah 'wmic product' juga membantu. windows-commandline.com/find-net-version-on-your-computer
Giri
11
Sorakan untuk Nomor 8!
Lionet Chen
330

Ada cara yang lebih mudah untuk mendapatkan versi yang tepat. Versi NET diinstal pada mesin Anda dari prompt cmd. Cukup ikuti instruksi berikut;

  1. Buka command prompt (yaitu Windows + R → ketik "cmd").
  2. Ketikkan perintah berikut, semuanya dalam satu baris:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

(Ini akan mencantumkan semua versi .NET.)

  1. Jika Anda ingin memeriksa versi .NET 4 terbaru.
  2. Ketik instruksi berikut, pada satu baris:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version

Silakan temukan gambar terlampir di bawah ini untuk melihat bagaimana gambar itu ditampilkan.

Masukkan deskripsi gambar di sini

AnandShanbhag
sumber
4
menemukan ini sebagai yang termudah dan paling tepat (dengan "* \ v4 \ Full" di akhir) karena mendapat versi minor juga hanya dengan satu perintah sederhana.
Ignas Vyšnia
1
Bagus. Menginginkan sesuatu yang akan bekerja pada pengguna PC dan ini dia. Terima kasih!
Kelly
6
Bagus tetapi tidak menunjukkan kerangka kerja 4,5, 4,6 dan 4,7 yang diinstal pada mesin Windows 7 saya :(
Zeek2
tidak cukup akurat; Saya melihat di bawah Panel Kontrol> Program dan Fitur, dan tidak ada tanda. NET.; Namun, saya menjalankan perintah Anda dan itu memberi saya output HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0. Mungkin, .NET pernah diinstal pada mesin saya, telah unistalled, tetapi registri tidak dibersihkan
Newton fan 01
30

Sebelum membuka prompt perintah, ikuti langkah-langkah ini ...

Buka Komputer Saya → klik dua kali " C: " drive → klik dua kali " Windows " → klik dua kali " Microsoft.NET " → klik dua kali Kerangka " → Di dalam folder ini, akan ada folder seperti "v1.0.3705" dan / atau "v2.0.50727" dan / atau "v3.5" dan / atau "v4.0.30319".

Versi .NET terbaru Anda akan berada di folder nomor v tertinggi, jadi jika tersedia v4.0.30319 yang akan menampung kerangka .NET terbaru Anda. Namun, v4.0.30319 tidak berarti Anda memiliki .NET framework versi 4.0. V4.0.30319 adalah versi kompiler Visual C # Anda, oleh karena itu, untuk menemukan versi .NET framework lakukan hal berikut.

Buka prompt perintah dan ikuti jalan ini:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (atau apa pun folder nomor v tertinggi)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> csc.exe

Keluaran:

Microsoft (R) Visual C # Versi kompiler 4.0.30319.17929 untuk Microsoft (R) .NET Framework 4.5 Hak cipta (C) Microsoft Corporation. Seluruh hak cipta.

Contoh di bawah ini:

Masukkan deskripsi gambar di sini

Sunimal Kaluarachchi
sumber
2
Cukup bagus, tetapi hasilnya berbeda setidaknya di server saya - Tidak ada pesan "untuk" yang disertakan: lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAAALQ/…
Nenotlep
2
untuk mengubah jenis direktori : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319lalu ketik csc.exe, harapan membantu seseorang.
shaijut
1
Sebagian besar Efisien ketika Anda masuk dengan akun pengguna terbatas.
Rzassar
10

Jawaban ini hanya berlaku untuk .NET Core!

Mengetik dotnet --versiondi terminal pilihan Anda akan mencetak versi .NET Core SDK yang digunakan.

Pelajari lebih lanjut tentang dotnetperintah di sini .

FelixAVeras
sumber
15
Ini berlaku untuk .NET Core saja.
Sunil
9

Untuk versi kerangka kerja yang diinstal, ini bervariasi tergantung pada paket layanan dan perbaikan terbaru yang Anda instal. Lihatlah halaman MSDN ini untuk lebih jelasnya. Itu menyarankan mencari %systemroot%\Microsoft.NET\Frameworkuntuk mendapatkan versi.

Environment.Version secara terprogram akan memberi Anda versi CLR.

Perhatikan bahwa ini adalah versi CLR, dan tidak harus sama dengan versi terbaru dari kerangka kerja yang telah Anda instal (.NET 3.0 dan 3.5 keduanya menggunakan v2 dari CLR).

adrianbank
sumber
Environment.Version tampaknya memberi Anda versi aplikasi. Katakanlah, dari LinqPad saya ingin menemukan. Versi NET itu berjalan melawan dan itu memberi saya bukan versi. NET, tetapi versi LinqPad
Naomi
@Nomi: tidak, itu memberikan versi CLR. Dari dokumen: "Mendapat objek Versi yang menjelaskan nomor utama, minor, build, dan revisi dari runtime bahasa umum." .
adrianbank
Apa yang seharusnya saya lihat di objek ini? Saya melihat 2.0.50727.5472 2 Minor 0 Build 50727 Revisi 5472 MajorRevision 0 MinorRevision 5472 yang tidak terlihat seperti versi CLR runtime to me
Naomi
Saya memuat versi terbaru LinqPad dan sekarang saya mendapatkan 4.0.30319.18052 untuk versi tersebut. Versi sebelumnya menargetkan versi .NET 3.5. Jadi, saya masih sedikit bingung - apakah memang menampilkan versi CLR?
Naomi
1
@Nomi: Ya, itu memang menunjukkan versi CLR. 2.0.50727.5472 adalah versi .Net 2.0 CLR, yang juga digunakan untuk .Net 3.0 dan 3.5. 4.0.30319.18052 adalah .Net 4.0, yang memiliki nomor versi berbeda.
adrianbank
8

Rincian MSDN di sini dengan sangat baik tentang cara memeriksanya dari registri:

Untuk menemukan versi .NET Framework dengan melihat registri (.NET Framework 1-4)

  1. Pada menu Mulai, pilih Jalankan.
  2. Di kotak Buka, masukkan regedit.exe. Anda harus memiliki kredensial administratif untuk menjalankan regedit.exe.
  3. Di Penyunting Registri, buka subkunci berikut:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP

Versi yang terinstal terdaftar di bawah subkey NDP. Nomor versi disimpan dalam entri Versi. Untuk .NET Framework 4 entri Versi berada di bawah subkunci Klien atau Penuh (di bawah NDP), atau di bawah kedua subkunci.

Untuk menemukan versi .NET Framework dengan melihat registri (.NET Framework 4.5 dan yang lebih baru)

  1. Pada menu Mulai, pilih Jalankan.
  2. Di kotak Buka, masukkan regedit.exe. Anda harus memiliki kredensial administratif untuk menjalankan regedit.exe.
  3. Di Penyunting Registri, buka subkunci berikut:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full

Perhatikan bahwa jalur ke subkunci Penuh menyertakan Kerangka Kerja Net subkunci daripada .NET Framework

Periksa nilai DWORD yang bernama Release. Keberadaan DWORD rilis menunjukkan bahwa .NET Framework 4.5 atau yang lebih baru telah diinstal pada komputer itu.

masukkan deskripsi gambar di sini

Catatan : Baris terakhir pada snapshot di atas yang dapat dibaca terpotong On all other OS versions: 461310. Saya mencoba level saya terbaik untuk menghindari informasi terpotong saat mengambil screenshot tetapi tabel itu terlalu besar.

RBT
sumber
6

Jika Anda membuka prompt perintah dan ketik dua perintah berikut, semua versi kerangka kerja yang diinstal pada mesin saat ini akan terdaftar (masing-masing disimpan dalam direktori terpisah dalam direktori ini).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D
Michael Arnell
sumber
8
Tidak direkomendasikan karena ini mungkin menyesatkan. Jika Anda memutakhirkan 4.0 => 4.5.2, direktori mungkin hanya menampilkan v4.0.30319. Lihat contoh Sunimal Kaluarachchi.
Dinah
6

Cukup ketik yang berikut ini di baris perintah:

dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Versi dotnet Anda akan ditampilkan sebagai angka tertinggi.

Steve Junior
sumber
1
Ini menampilkan semua versi hingga 4.0, tetapi misalnya tidak 4.5.
pinowthebird
4

Untuk mendapatkan versi terinstal di baris perintah, saya sarankan menggunakan versi net .

  • Itu hanya satu biner .
  • Itu menggunakan pedoman yang disediakan Microsoft saya untuk mendapatkan informasi versi.
  • Itu tidak memerlukan SDK untuk diinstal.
  • Atau prompt perintah Visual Studio.
  • Itu tidak mengharuskan Anda untuk menggunakan regedit dan memburu kunci registri sendiri. Anda bahkan dapat menyalurkan output di alat baris perintah jika perlu.

Kode sumber tersedia di github.com

Pengungkapan penuh: Saya membuat alat ini sendiri karena frustrasi.

Dan Esparza
sumber
Jika kumpulan informasi versi (tidak lengkap) itu cukup baik untuk Anda, lebih banyak kekuatan untuk Anda.
Dan Esparza
@ Shiva Anda menunjukkan bahwa Anda pikir perintah itu menunjukkan segalanya, dan saya dengan hormat tidak setuju dengan Anda. Silakan lihat tautan dengan pedoman yang disediakan oleh Microsoft. Misalnya: Permintaan Anda tidak menunjukkan bahwa saya telah menginstal .NET 4.6.1. Juga, ini menunjukkan saya menginstal 'CDF', yang bukan versi .NET framework.
Dan Esparza
4

Jika Anda cukup sering melakukan ini (seperti yang cenderung saya lakukan), Anda dapat membuat pintasan di desktop sebagai berikut:

  1. Klik kanan pada desktop dan pilih NewShortcut .
  2. Di bidang lokasi, rekatkan string ini: powershell.exe -noexit -command "gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release"(ini dari pos Binoj Antony ).
  3. Hit Selanjutnya . Beri nama jalan pintas dan Selesai .

(CATATAN: Saya tidak yakin apakah ini berfungsi untuk 4,5, tetapi saya dapat mengonfirmasi bahwa ini berfungsi untuk 4.6, dan versi sebelum 4.5.)

kmote
sumber
Versi 1.0 dan 1.1 tidak muncul di kunci Pengaturan Kerangka NET , meskipun ada di folder% systemroot% \ Microsoft.NET \ Framework \.
samis
4

Berikut ini skrip Power Shell yang saya gunakan dengan mengambil referensi dari:

https://stackoverflow.com/a/3495491/148657

$Lookup = @{
    378389 = [version]'4.5'
    378675 = [version]'4.5.1'
    378758 = [version]'4.5.1'
    379893 = [version]'4.5.2'
    393295 = [version]'4.6'
    393297 = [version]'4.6'
    394254 = [version]'4.6.1'
    394271 = [version]'4.6.1'
    394802 = [version]'4.6.2'
    394806 = [version]'4.6.2'
    460798 = [version]'4.7'
    460805 = [version]'4.7'
    461308 = [version]'4.7.1'
    461310 = [version]'4.7.1'
    461808 = [version]'4.7.2'
    461814 = [version]'4.7.2'
    528040 = [version]'4.8'
    528049 = [version]'4.8'
}

# For One True framework (latest .NET 4x), change the Where-Oject match 
# to PSChildName -eq "Full":
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
  Get-ItemProperty -name Version, Release -EA 0 |
  Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
  Select-Object @{name = ".NET Framework"; expression = {$_.PSChildName}}, 
@{name = "Product"; expression = {$Lookup[$_.Release]}}, 
Version, Release

Skrip di atas menggunakan registri dan memberi kami nomor pembaruan Windows bersama dengan .Net Framework yang diinstal pada mesin.

Referensi: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- querying-the-registry-in-code-net-framework-45-dan-lebih baru

Berikut adalah hasil yang sama ketika menjalankan skrip itu di dua mesin yang berbeda

  1. Di mana .NET 4.7.2 sudah diinstal:

masukkan deskripsi gambar di sini

  1. Di mana .NET 4.7.2 tidak diinstal:

masukkan deskripsi gambar di sini

Raghav
sumber
3

Ya Tuhan, begitu berantakan untuk menemukan versi .net framework yang terpasang?

Windows> Cari> Visual Studio Installer> untuk versi VS yang terpasang, ketuk Lainnya> Ubah> Komponen Individual dan lihat di sana:

masukkan deskripsi gambar di sini

pixel
sumber
2

Coba .NET Checkeroleh Scott Hanselman.

AI
sumber
1
Saran yang bagus. OP secara khusus menunjukkan alat baris perintah.
Dan Esparza
1

clrveradalah yang terbaik. Cukup jalankan di .NET prompt dan itu akan mencantumkan semua versi kerangka kerja yang tersedia.

James Poulose
sumber
3
Alat ini tidak hanya membutuhkan kerangka .NET untuk diinstal, tetapi Visual Studio. OP menunjukkan bahwa Visual Studio mungkin tidak diinstal.
Dan Esparza
Dan itu tidak menampilkan semua (atau bahkan sebagian besar) versi. Untuk PC Win7 saya hanya menunjukkan V2.0 & 4.0 tetapi beberapa metode lain di atas juga menunjukkan versi: 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 dan 4.7.
Zeek2
1
@Zeek clrvermenunjukkan .net runtime (s) terinstal , yang dapat dibagikan di antara versi .net (s) . Lihat Bagaimana: Menentukan Versi .NET Framework Yang Dipasang dan Mengidentifikasi versi .NET yang Anda jalankan (2.0, 4.5, 4.5.1 atau 4.5.2)
samis
1

Bagi siapa pun yang menjalankan Windows 10 1607 dan mencari .net 4.7 . Abaikan semua hal di atas.

Itu tidak ada dalam folder Registry , C: \ Windows \ Microsoft.NET atau daftar Program yang Dipasang atau tampilan WMIC dari daftar yang sama.

Cari "pembaruan yang diinstal" KB3186568.

Skrie
sumber
1
Ada dalam registri, seperti yang didokumentasikan oleh Microsoft . HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- Releasenilainya akan 460798sebesar 4,7 pada W10 1607.
Richard Deeming
Bukan itu. Kunci "Penuh" bahkan tidak ada.
skrie
1
Ya, dan memang begitu. Saya menjalankan 1607, dan saya sedang melihat Fullkunci sekarang!
Richard Deeming
0

Jika Anda mengembangkan beberapa aplikasi .Net (misalnya aplikasi web), Anda dapat membuat 1 baris kode kesalahan (seperti memanggil nama fungsi yang salah) dan memuat ulang halaman Anda, versi .Net akan ditampilkanmasukkan deskripsi gambar di sini

Sy C Dang
sumber
Mungkin bukan cara terbersih, tetapi memang pilihan yang saya benar-benar lupa. Sederhana GACUTIL /l ?di (pengembang) Anda menghasilkan hasil yang sama.
B - rian
-1

Ada cara yang lebih mudah untuk mendapatkan versi yang tepat. Versi NET diinstal pada mesin Anda dari prompt cmd. Cukup ikuti instruksi berikut;

Buka command prompt (yaitu Windows + R → ketik "cmd") dan ketik perintah berikut, semua dalam satu baris:% windir% \ Microsoft.NET \ FrameWork, dan kemudian menavigasi ke direktori dengan nomor versi terbaru.

Lihat http://dotnettec.com/check-dot-net-framework-version/

Julia
sumber
Saya mendapatkan kesalahan ini ketika mencoba mengikuti jawaban Anda:'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
pavjel