ใน Windows คุณสามารถติดตั้งและรันหลายเวอร์ชันของ .NET Framework พร้อมกันได้ เมื่อพัฒนาหรือปรับใช้แอปพลิเคชันใหม่ที่อิงตามไลบรารี .NET บางครั้งคุณต้องทราบล่วงหน้าว่ามีเวอร์ชันและ Service Pack ของ .Net Framework ไหนติดตั้งอยู่บนคอมพิวเตอร์หรือเซิร์ฟเวอร์ของผู้ใช้แล้ว คุณสามารถรับรายการเวอร์ชัน .NET Framework ที่ติดตั้งบนคอมพิวเตอร์ของคุณได้หลายวิธี
การตรวจสอบเวอร์ชัน .NET Framework ผ่าน Windows Registry
เมื่อคุณติดตั้งหรืออัปเดตเวอร์ชันใดๆ ของ .NET Framework การเปลี่ยนแปลงจะถูกเขียนลงใน Windows Registry
รัน Registry Editor (regedit.exe) และไปที่คีย์รีจิสทรี HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP คีย์รีจิสทีนี้มีข้อมูลเกี่ยวกับเวอร์ชัน .NET ทั้งหมดบนคอมพิวเตอร์ ขยายซับคีย์ใดๆ และสนใจพารามิเตอร์ต่อไปนี้ (สำหรับ .Net 4.x คุณต้องขยายซับคีย์ Full):
- Install — ธงการติดตั้ง (หากเท่ากับ 1 แสดงว่าเวอร์ชัน .Net นี้ติดตั้งอยู่บนคอมพิวเตอร์)
- Install Path — ไดเรกทอรีที่ติดตั้งเวอร์ชัน .Net นี้
- Release — หมายเลขการเผยแพร่ .NET
- Version — หมายเลขเวอร์ชันเต็มของ .Net Framework
เคล็ดลับ สำหรับ .NET 4.0 และใหม่กว่า หากซับคีย์ Full หายไป หมายความว่าเวอร์ชัน Framework นี้ไม่ได้ติดตั้งบนคอมพิวเตอร์
ในตัวอย่างนี้ คุณเห็นว่า .NET Framework v2.0.50727, 3.0, 3.5 และ 7.0 (release 460805) ติดตั้งอยู่
โปรดทราบว่าในระบบปฏิบัติการเซิร์ฟเวอร์ตั้งแต่ Windows Server 2012 เป็นต้นมา เวอร์ชัน .Net พื้นฐานทั้งหมด (3.5 และ 4.5) ถูกติดตั้งเป็นคุณสมบัติ Windows (การติดตั้ง .NET Framework 3.5 บน Windows Server และ Windows 10) และเวอร์ชันรอง (4.5.1, 4.5.2 ฯลฯ) ถูกติดตั้งเป็นอัปเดตแยกต่างหากผ่าน Windows Update หรือ WSUS
โดยใช้ตารางต่อไปนี้ คุณสามารถแมปหมายเลข release ไปยังเวอร์ชันของ .NET Framework (สำหรับ .NET 4.5 และใหม่กว่า)
| Release Number | .NET Framework version |
|---|---|
| 378389 | .NET Framework 4.5 |
| 378675 | NET Framework 4.5.1 on Windows 8.1 and Windows Server 2012 R2 |
| 378758 | .NET Framework 4.5.1 on Windows 8, Windows 7 SP1, Windows Vista SP2 |
| 379893 | .NET Framework 4.5.2 |
| 393295 | .NET Framework 4.6 on Windows 10 |
| 393297 | .NET Framework 4.6 |
| 394254 | .NET Framework 4.6.1 on Windows 10 1511 |
| 394271 | .NET Framework 4.6.1 |
| 394802 | .NET Framework 4.6.2 on Windows 10 1607 |
| 394806 | .NET Framework 4.6.2 |
| 460798 | .NET Framework 4.7 on Windows 10 1703 |
| 460805 | .NET Framework 4.7 |
| 461308 | .NET Framework 4.7.1 on Windows 10 1709 |
| 461310 | .NET Framework 4.7.1 |
| 461808 | .NET Framework 4.7.2 on Windows 10 1803 |
| 461814 | .NET Framework 4.7.2 |
| 528372 | .NET Framework 4.8 on Windows 10 2004, 20H2, and 21H1 |
| 528040 | .NET Framework 4.8 on Windows 10 1903 and 1909 |
| 528449 | .NET Framework 4.8 on Windows Server 2022 and Windows 11 |
| 528049 | .NET Framework 4.8 (Windows อื่นๆ) |
.NET Framework 4.8 คือเวอร์ชันล่าสุดที่พร้อมใช้งานของ .NET Framework
วิธีตรวจสอบเวอร์ชัน .NET Framework ด้วย PowerShell
คุณสามารถรับข้อมูลเกี่ยวกับเวอร์ชันและ release ที่ติดตั้งของ NET Framework บนคอมพิวเตอร์ของคุณโดยใช้ PowerShell วิธีที่ง่ายที่สุดในการรับข้อมูลนี้โดยตรงจากรีจิสทรีคือการใช้คำสั่ง Get-ChildItem และ Get-ItemProperty (อ่านเพิ่มเติมเกี่ยวกับการจัดการรายการรีจิสทรีด้วย PowerShell)
เพื่อแสดงรายการเวอร์ชัน .Net Framework ทั้งหมดบนคอมพิวเตอร์ ให้รันคำสั่ง:
Get-ChildItem ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP’ -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match ‘^(?!S)\p{L}’} | Select PSChildName, version
.Net versions 2.0, 3.0, 3.5, และ 4.7 ติดตั้งอยู่บนคอมพิวเตอร์นี้
เริ่มจาก .Net v4.0 เวอร์ชัน Framework ใหม่จะเขียนทับ (แทนที่) เวอร์ชันเก่า นั่นคือ หาก .NET Framework 4.7 ติดตั้งอยู่บนคอมพิวเตอร์ แล้วเมื่อติดตั้ง .NET Framework 4.8 เวอร์ชันเก่าจะถูกแทนที่
คุณสามารถแสดงหมายเลข release เฉพาะสำหรับ (.Net 4.x versions):
(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Release
ตามตาราง หมายเลข 528449 ตรงกับ .Net Framework 4.8 บน Windows 11
แสดงรายการเวอร์ชัน .NET ที่ติดตั้งบนคอมพิวเตอร์ระยะไกล
คุณสามารถรับรายการเวอร์ชัน .Net Framework ที่ติดตั้งบนคอมพิวเตอร์ในเครือข่ายของคุณจากระยะไกลโดยใช้ PowerShell
นี่คือสคริปต์ PowerShell ขนาดเล็กที่สอบถามรายการคอมพิวเตอร์จากไฟล์ข้อความและตรวจสอบเวอร์ชัน .Net Framework ที่ติดตั้งจากระยะไกล คำสั่ง WinRM Invoke-Command ใช้สำหรับรันคำสั่งบนคอมพิวเตอร์ระยะไกล
Function GetNetFrameworkVersion {
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^(?![SW])\p{L}'} |
Select PSChildName, Version, Release, @{
name="Product"
expression={
switch -regex ($_.Release) {
"378389" { [Version]"4.5" }
"378675|378758" { [Version]"4.5.1" }
"379893" { [Version]"4.5.2" }
"393295|393297" { [Version]"4.6" }
"394254|394271" { [Version]"4.6.1" }
"394802|394806" { [Version]"4.6.2" }
"460798|460805" { [Version]"4.7" }
"461308|461310" { [Version]"4.7.1" }
"461808|461814" { [Version]"4.7.2" }
"528040|528049|528449|528372" { [Version]"4.8" }
{$_ -gt 528449} { [Version]"unidentified version (> 4.8)" }
}
}
}
}
$result=@()
$servers= Get-Content C:\Scripts\my_servers.txt
foreach ($server in $servers)
{
$result+=Invoke-Command -ComputerName $server -ScriptBlock $function:GetNetFrameworkVersion
}
$result| select PSComputerName,@{name = ".NET Framework"; expression = {$_.PSChildName}},Product,Version,Release| Out-GridView
สคริปต์แสดงตารางกราฟิก (ผ่าน Out-GridView) พร้อมรายการเวอร์ชัน .Net Framework ที่ติดตั้งบนคอมพิวเตอร์ระยะไกล
คุณยังสามารถตั้งค่ารายการคอมพิวเตอร์ที่จะตรวจสอบเวอร์ชัน .NET ได้ดังนี้:
$servers= @("comp1","comp2","comp3","comp4")
หรือคุณสามารถรับรายการคอมพิวเตอร์โดเมนด้วยคำสั่ง Get-ADComputer (จากโมดูล Active Directory for Windows PowerShell) คำสั่งต่อไปนี้จะเลือกโฮสต์ Windows Server ที่ทำงานอยู่ทั้งหมดในโดเมน:
$servers= Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"'
วิธีหาเวอร์ชัน .NET Framework ด้วย CMD
เวอร์ชัน .NET Framework ทั้งหมดติดตั้งอยู่ในโฟลเดอร์ Windows ต่อไปนี้:
%SystemRoot%\Microsoft.NET\Framework%SystemRoot%\Microsoft.NET\Framework64
คุณสามารถเปิดโฟลเดอร์นั้นและดูรายการเวอร์ชัน .NET ที่ติดตั้ง แต่ละเวอร์ชันมีไดเรกทอรีแยกต่างหากกับชื่อโฟลเดอร์เป็น v และหมายเลขเวอร์ชัน คุณสามารถแสดงรายการเวอร์ชัน .NET Framework ที่ติดตั้งจากคำสั่งพร้อมท์:
dir %WINDIR%\Microsoft.Net\Framework\v* /O:-N /B
คำสั่งนี้จะแสดงรายการเวอร์ชันที่ติดตั้งทั้งหมดยกเว้น .NET 4.5 เนื่องจาก Framework 4.5+ ติดอยู่ในซับไดเรกทอรี v4.0.xxxxx