How to Find the Version of .NET Framework Installed on Your System
Knowing which version of .NET Framework is running on your machine matters more than most people realize. It affects whether software installs correctly, whether applications run or crash, and whether your system meets the requirements for tools you rely on every day. The good news: finding this information is straightforward once you know where to look.
What Is .NET Framework and Why Does the Version Matter?
.NET Framework is a software development platform built by Microsoft. It provides the runtime environment and libraries that countless Windows applications depend on to function. When a program is built targeting a specific .NET version, it needs that version — or a compatible one — to be present on the machine running it.
Microsoft has released numerous versions over the years, from the early 1.0 and 1.1 releases through to 4.x, which remains the dominant branch on Windows. Versions in the 4.x family are largely backward-compatible, meaning a machine with .NET 4.8 can typically run apps built for 4.0, 4.5, or 4.6. Earlier versions like 2.0 or 3.5 are separate installs and don't overlap in the same way.
Understanding which version is installed helps you troubleshoot errors, verify software compatibility before installing, and determine whether an update or additional install is needed.
Method 1: Check via the Registry Editor 🔍
The most reliable way to see every version of .NET Framework installed is through the Windows Registry.
- Press Windows + R, type
regedit, and press Enter - Navigate to:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDP - Expand the subkeys — each folder represents an installed .NET version
- For .NET 4.5 and later, go deeper into the
v4 > Fullkey and look for the Release DWORD value
The Release value is a numeric code that maps to a specific version:
| Release Value | .NET Framework Version |
|---|---|
| 378389 | 4.5 |
| 379893 | 4.5.2 |
| 393295 | 4.6 |
| 394802 | 4.6.2 |
| 460798 | 4.7 |
| 461808 | 4.7.2 |
| 528040 | 4.8 |
| 533320 | 4.8.1 |
If your Release value is equal to or greater than a listed number, that version is installed.
Method 2: Use PowerShell for a Faster Read
If you're comfortable with the command line, PowerShell gives you a clean, readable output without manually browsing registry folders.
Open PowerShell and run:
Get-ChildItem 'HKLM:SOFTWAREMicrosoftNET Framework SetupNDP' -Recurse | Get-ItemProperty -Name Version, Release -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^(?!S)p{L}'} | Select-Object PSChildName, Version, Release This command queries the same registry path but formats the results into a table directly in your terminal — showing the version name, version number, and release code for each installed instance.
Method 3: Check Programs and Features (Quick but Limited)
For a basic check without touching the registry:
- Open Control Panel
- Go to Programs > Programs and Features
- Look for entries labeled Microsoft .NET Framework
This method shows clearly installed standalone versions (like .NET Framework 3.5), but it won't always surface 4.x subversions with the same specificity as the registry approach. It's useful for a quick sanity check, not for identifying whether you're running 4.7.1 versus 4.7.2.
Method 4: Check via Windows Features (for 3.5 Specifically)
.NET Framework 3.5 has a unique status on modern Windows — it's built into the OS but must be enabled, and it isn't always shown the same way as other versions.
- Open Control Panel > Programs > Turn Windows features on or off
- Look for .NET Framework 3.5 (includes .NET 2.0 and 3.0)
A checked box means it's enabled. An unchecked box means it's available but not currently active. This version is commonly required by older business software and legacy enterprise tools.
.NET Framework vs. .NET (Core) — A Critical Distinction ⚠️
One variable that trips up many users: the difference between .NET Framework and .NET (formerly called .NET Core).
- .NET Framework is Windows-only, with versions numbered up to 4.8.x. It's considered in maintenance mode — Microsoft still patches it but isn't adding major features.
- .NET (versions 5, 6, 7, 8, and beyond) is the cross-platform successor. It runs on Windows, macOS, and Linux and is actively developed.
If an application requires .NET 6 or .NET 8, checking your .NET Framework version won't help — those are entirely separate runtimes. To check your installed .NET versions, open a command prompt and run:
dotnet --list-runtimes or
dotnet --version Variables That Affect What You'll Find
The version picture on any given machine depends on several factors:
- Windows version: Windows 10 and 11 ship with .NET Framework 4.8 pre-installed. Older OS versions may have earlier releases.
- Update history: Machines that haven't received Windows Updates may be stuck on an older 4.x subversion.
- Software installs: Some applications install their own required .NET version silently during setup, which can add versions you didn't manually install.
- Enterprise environments: IT-managed systems may have specific versions locked or deployed via group policy.
- Server vs. desktop: Windows Server editions manage .NET Framework features differently through Server Manager roles.
What Multiple Installed Versions Means
It's completely normal — and common — to have multiple .NET versions installed simultaneously. A typical Windows 10 machine might have 3.5 enabled alongside 4.8. Applications targeting different versions simply use the runtime they were built for. Having several versions installed doesn't cause conflicts; they coexist by design.
The more relevant question is usually not just what's installed, but whether the specific version a particular application needs is present and enabled — and that answer depends entirely on what you're trying to run and on which version of Windows you're working with.