Pertanyaan ini tidak terlalu terkait dengan pemrograman, melainkan terkait dengan penerapan.
Saya mendapati diri saya banyak bercakap-cakap dengan grup di perusahaan saya yang tugasnya memelihara server Windows produksi kami dan menerapkan kode kami padanya. Untuk alasan hukum dan kepatuhan, saya tidak memiliki visibilitas langsung atau kontrol apa pun atas server sehingga satu-satunya cara saya dapat mengetahui versi .NET yang diinstal pada salah satu dari mereka adalah melalui petunjuk yang saya berikan kepada grup itu.
Sejauh ini, semua metode yang dapat saya pikirkan untuk mengetahui versi mana yang diinstal (periksa Alat Administratif yang cocok dengan 1.1 atau 2.0, periksa entri dalam daftar "Tambah / Hapus Program", periksa keberadaan direktori di bawah c: \ Windows \ Microsoft.NET) cacat (saya telah melihat setidaknya satu mesin dengan 2.0 tetapi tidak ada entri 2.0 di bawah Alat Administratif - dan metode itu tidak memberi tahu Anda apa pun tentang 3.0+, daftar "Tambah / Hapus Program" dapat keluar dari sinkronisasi dengan kenyataan, dan keberadaan direktori tidak selalu berarti apa-apa).
Mengingat bahwa saya biasanya perlu mengetahui hal-hal ini ada di tempat sebelumnya (menemukan bahwa "oops, yang satu ini tidak memiliki semua versi dan paket layanan yang Anda butuhkan" tidak benar-benar berfungsi dengan baik dengan jendela pemeliharaan singkat) dan saya harus melakukan pemeriksaan "dengan proxy" karena saya tidak dapat mengakses server secara langsung, apa cara yang sangat mudah untuk mengetahui versi .NET mana yang diinstal pada Windows Server produksi? Lebih disukai beberapa cara intrinsik untuk melakukannya dengan menggunakan apa yang diinstal oleh kerangka kerja karena akan lebih cepat dan tidak memerlukan semacam utilitas untuk dimuat dan juga metode yang pasti akan gagal jika kerangka tidak terpasang dengan benar tetapi masih memiliki file di tempatnya (mis. , ada direktori dan gacutil.exe ditemukan di sana, tetapi versi kerangka tersebut tidak benar-benar "terpasang")
EDIT: Dengan tidak adanya cara intrinsik yang sangat mudah dan mudah untuk melakukan ini yang dibangun ke dalam Kerangka, apakah ada yang tahu tentang program yang bagus, ringan, dan tidak perlu menginstal yang dapat menemukan ini? Saya dapat membayangkan seseorang dapat dengan mudah menulisnya tetapi jika sudah ada, itu akan lebih baik.
sumber
Jawaban:
Anda harus membuka IE di server yang Anda cari info ini, dan pergi ke situs ini: http://www.hanselman.com/smallestdotnet/
Hanya itu yang dibutuhkan.
Situs ini memiliki skrip yang melihat "UserAgent" browser Anda dan mencari tahu versi (jika ada) dari .NET Framework yang telah Anda (atau belum) instal, dan menampilkannya secara otomatis (kemudian menghitung ukuran total jika Anda memilih untuk mengunduh .NET Framework).
sumber
Anda dapat secara terprogram memeriksa registri dan beberapa hal lainnya sesuai entri blog ini .
Kunci registri yang harus dilihat adalah
sumber
Menemukan jawaban dari sini :
Buka Command Prompt dan salin tempel salah satu baris perintah di bawah ini
atau
sumber
Sesuai jawaban CodeTrawler , solusinya adalah memasukkan berikut ini ke dalam jendela explorer:
Kemudian cari:
... dan klik kanan / buka tab versi untuk setiap hasil.
sumber
Cara Microsoft adalah ini:
MSDN: Cara menentukan mana .NET Framework Versi Apakah Terpasang (yang mengarahkan Anda ke kunci registri berikut:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\...
)Jika Anda ingin sangat mudah, itu hal lain. Saya tidak akan khawatir tentang xcopy dari folder framework. Jika seseorang melakukan itu saya akan menganggap komputer rusak.
Cara paling mudah adalah dengan menulis program kecil yang menggunakan setiap versi .NET dan pustaka yang Anda pedulikan dan menjalankannya.
Untuk metode tanpa instalasi, PowerBasic adalah alat yang luar biasa. Ini menciptakan sedikit waktu runtime diperlukan exe. Itu bisa mengotomatiskan pemeriksaan yang dijelaskan dalam artikel MS KB di atas.
sumber
http://www.asoft.be/prod_netver.html
Gunakan "program yang bagus, ringan, tidak perlu menginstal" ini
sumber
Jika mesin yang ingin Anda periksa telah menginstal .NET SDK, Anda dapat menggunakan prompt perintah SDK dan menjalankan program
CLRVer.exe
.sumber
Jawaban resmi Microsoft tentang cara melakukan ini ada di artikel KB 318785 .
sumber
Penerapan OneTouch akan melakukan semua deteksi dan pemasangan prasyarat. Mungkin yang terbaik adalah menggunakan solusi yang sudah dibuat sebelumnya daripada mencoba membuat sendiri. Mencoba menggulung sendiri dapat menyebabkan masalah karena apa pun yang Anda masukkan dapat berubah dengan perbaikan terbaru atau paket layanan. Mungkin Microsoft memiliki beberapa heuristik untuk menentukan versi apa yang sedang berjalan.
sumber
Cara resmi untuk mendeteksi .NET 3.0 dijelaskan di sini
http://msdn.microsoft.com/en-us/library/aa480198.aspx
Cacat, karena memerlukan pemanggil untuk memiliki izin akses registri.
MSDN juga menyebutkan teknik untuk mendeteksi .NET 3.5 dengan memeriksa string Agen Pengguna:
http://msdn.microsoft.com/en-us/library/bb909885.aspx
Saya pikir Microsoft seharusnya melakukan pekerjaan yang lebih baik dari ini.
sumber
Juga, lihat pertanyaan Stack Overflow Bagaimana cara mendeteksi versi .NET Framework dan paket layanan yang diinstal? yang juga menyebutkan:
ID Artikel: 318785 - Ulasan Terakhir: 7 November 2008 - Revisi: 20.1 Cara menentukan versi .NET Framework yang diinstal dan apakah paket layanan telah diterapkan.
Sayangnya, tampaknya tidak berfungsi, karena
mscorlib.dll
versi di direktori 2.0 memiliki versi 2.0, dan tidak adamscorlib.dll
versi baik di direktori 3.0 atau 3.5 meskipun 3.5 SP1 diinstal ... Mengapa jawaban resmi Microsoft menjadi sangat salah informasi?sumber
Untuk menentukan dukungan server Anda untuk .NET Framework 4.5 dan versi yang lebih baru (diuji melalui 4.5.2): Jika Anda tidak memiliki akses Registry di server , tetapi memiliki hak publikasi aplikasi ke server tersebut, buat aplikasi MVC 5 dengan cara yang sepele pengontrol, seperti ini:
Kemudian di Web.config Anda, telusuri versi .NET Framework yang diinginkan di bagian berikut, ubah
targetFramework
nilai sesuai keinginan:Publikasikan setiap target ke server Anda, lalu telusuri
<app deploy URL>/Default
. Jika server Anda mendukung kerangka target, maka string sederhana akan ditampilkan dari Pengontrol sepele Anda. Jika tidak, Anda akan menerima pesan kesalahan seperti berikut:Jadi dalam kasus ini, server target saya belum mendukung .NET Framework 4.5.2.
sumber
Untuk mendapatkan versi dotnet yang terinstal,
Buat aplikasi Konsol. Tambahkan kelas ini Jalankan itu
sumber
Anehnya, saya menulis beberapa kode untuk melakukan ini kembali ketika 1.1 keluar (apa itu, tujuh tahun yang lalu?) Dan men-tweaknya sedikit ketika 2.0 keluar. Saya tidak melihatnya selama bertahun-tahun karena kami tidak lagi mengelola server kami.
Ini tidak sangat mudah, tetapi saya tetap mempostingnya karena menurut saya itu lucu; karena lebih mudah dilakukan di .NET dan lebih mudah lagi di power shell.
sumber
Nah, seperti kata Dean, Anda bisa melihat registri dan melakukan apa yang dia lakukan. Untuk memeriksa apakah dia benar-benar menginstal CLR .NET Framework, Anda harus mencari
MSCorEE.dll
file tersebut di%SystemRoot%\System32
direktori.sumber
Ini mungkin cara yang buruk untuk mengetahui versi, tetapi saya selalu mendapat kesan bahwa semua versi telah diinstal
<root>:\WINDOWS\Microsoft.NET\Framework
.Ini menyediakan folder dengan nama seperti
v2.0.50727
yang saya percaya memberikan informasi versi yang rinci.sumber
Jika Anda ingin mencari versi sebelum .NET 4.5, gunakan kode untuk aplikasi konsol. Seperti ini:
Jika tidak, Anda dapat menemukan .NET 4.5 atau yang lebih baru dengan membuat kueri seperti ini:
Kemudian hasil konsol akan memberi tahu Anda versi mana yang diinstal dan tersedia untuk digunakan dengan penerapan Anda. Kode ini juga berguna karena Anda memilikinya sebagai solusi tersimpan kapan pun Anda ingin memeriksanya di masa mendatang.
sumber
Saya masuk ke Pembaruan Windows & melihat riwayat pembaruan, mengetahui tambalan server tetap mutakhir. Saya memindai pembaruan .NET dan itu menunjukkan kepada saya versi mana yang memiliki pembaruan, yang memungkinkan saya untuk menyimpulkan versi mana yang diinstal.
sumber
Saya menemukan yang ini cukup berguna. inilah sumbernya
sumber