Oddly enough, this has been my, by far, most popular blog post in the past nine years I’ve been running this blog.
This blog post has been updated often and was initially written for Windows Server 2012, but is still applicable today.
Interestingly, installing Dotnet 3.5 is the same as almost ten years ago.
The latest version of Microsoft .NET Framework 3.5 is .NET Framework 3.5 (3.5.1) Service Pack 1.
It is now possible to install .NET Framework 3.5 SP1 using the GUI, Powershell, DISM, or the Offline Installer.
Which method you prefer is up to preference.
Like most people having issues installing .NET Framework 3.5 on your server or client machine, read this blog post to clarify this question.
This blog post focuses on installing .NET Framework 3.5 on Windows Server 2012, Windows Server 2016, Windows Server 2019, and Windows 10. It does also apply if you wish to install it on Windows 8 or 8.1.
Where do I find the .NET Framework 3.5 installation status?
If you want to verify if .NET Framework 3.5 has been installed on your client, the easiest way is to do this via the Control Panel.
Here is how to check if .NET 3.5 is installed on Windows 10:
Open the Control Panel and go to Programs and Features.
Press Turn Windows features or off.
Verify if .NET Framework 3.5 (Includes .NET 2.0 and 3.0) is enabled.
If you see the same as in the below screenshot, .NET Framework 3.5 is installed.
Install .NET Framework 3.5
This blog post describes how to install .NET Framework 3.5 SP1 using:
Unfortunately, installing Microsoft .NET Framework 3.5 is not as straightforward as you might think. Microsoft has a guide for installing .NET Framework 3.5, but it does not provide the whole story.
.NET Framework 3.5 comes with the Windows 10 DVD and is located in the \sources\sxs folder.
Versions of .NET Framework 3.5 on Windows 10
Note that when installing .NET Framework 3.5, they are version-specific. This means that you need to install .NET 3.5 that comes with each Windows 10 version. So for Windows 10 2004, you will need to install .NET 3.5 from that media, 1909 from that media, and so on.
How to Install .NET 3.5 using DISM
Start an elevated command prompt using Run as Administrator and enter this command:
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:sourcessxs /LimitAccess
Note: The source should be the Windows installation disc. In my case, the media was located on D:.
Powershell command to install .NET Framework 3.5
It is also possible to install .NET Framework 3.5 using Powershell.
Run Powershell with elevation and use this command to accomplish this:
Add-WindowsCapability –Online -Name NetFx3~~~~ –Source D:\sources\sxs
Install .NET Framework 3.5 using the Server Manager
Go down to Specify an alternate source path and enter this in the path:
Enter the source path, which should be the Windows 10 installation media.
Install .NET Framework 3.5 using the offline installer
You can also install .NET Framework 3.5 offline, using the Offline Installer: https://www.microsoft.com/en-us/download/confirmation.aspx?id=25150.
Review installation of .NET Framework 3.5
Once you have followed one of the above three installation methods, verify the .NET Framework 3.5 Feature installation status using:
- The GUI
Review installation of .NET Framework 3.5 using the Server Manager
If you open Server Manager and open Add Roles and Features, see the following for the .NET Framework 3.5 installation:
Review installation of .NET Framework 3.5 using Powershell
Use the below Powershell command to see if .NET Framework 3.5 is installed and with which subversions:
(Get-ItemProperty -Path "HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv3.5").Version
Incredibly, this is still an issue and my most popular blog post on this site.
Since this blog post was first published for the past seven years, not much has changed on the GUI side.
The possibility to install .NET Framework 3.5 using Powershell is improved, but not much more.
Even though .NET Framework 3.5 is an old library, we are likely to see it as a prerequisite for the upcoming years.
When did you first encounter this issue, and is it still applicable to you?
Please leave a comment below with your answer!