Oddly enough, this has been my, by far, most popular blog post the past 9 years I’ve been running this blog. This blog post has been updated numerous times, and was initially written for Windows Server 2012, but is still applicable today.

It is now possible to install .NET Framework 3.5 using the GUI, Powershell, DISM, or using the Offline Installer. Which method you prefer is up to personal preference.

If you are, like most people, having issues with installing .NET Framework 3.5 on your server or client machine, read this blog post to get some more clarity on 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.


What is Microsoft .NET Framework 3.5?

First available on January 16, 2008, the Microsoft .NET Framework 3.5 is a framework with a shared library of code that can be used by developers. It also provides a run-time environment for applications.

Microsoft .NET Framework 3.5 is a typical prerequisite for legacy applications, and a general guideline is to install it. This post is a guide for how to install .NET Framework 3.5 on Windows Server 2012, Windows Server 2016, Windows Server 2019, and Windows 10.

How do I know if .NET Framework 3.5 is installed?

There are several ways of checking which .NET Framework versions you have installed:

– Control Panel
– The Windows Registry
– Powershell

For more information, refer to this article:

Where do I find the .NET Framework 3.5 installation status?

This blog post describes how to install .NET Framework 3.5 using:

  1. Command-line (DISM)
  2. Powershell
  3. Server Manager (GUI)
  4. Offline Installer

Unfortunately, installing Microsoft .NET Framework 3.5 is not as straight forward as you might think. Microsoft has a guide for installing .NET Framework 3.5, but it does not provide the full story.

If you are trying to install the feature from Server Manager or Programs and Features, the following error appears:

“Do you want to specify an alternate source path? One or more installation selections are missing source files…”

do you need to specify an alternate source path

Install .NET Framework 3.5 using the command-line (DISM)

Go to a command prompt and enter this command:

dism /online /enable-feature /featurename:NetFX3 /all /Source:d:sourcessxs /LimitAccess

Note: Source should be the Windows installation disc. In my case, the media was located on D:

dism install .net 3.5

Install .NET Framework 3.5 using Powershell

It is also possible to install .NET Framework 3.5 using Powershell. Use this command to accomplish this:

Add-WindowsCapability –Online -Name NetFx3~~~~ –Source D:sourcessxs

Install .NET Framework 3.5 using the Server Manager

Go down to Specify an alternate source path and enter <media drive>sourcessxs as the path.

do you need to specify an alternate source path

Enter the source path. This should be the Windows media path.

Specify alternate source path windows server 2012 .net framework 3.5

Install .NET Framework 3.5 using the offline installer

You can also install .NET Framework 3.5 using the Offline Installer:

Review installation of .NET Framework 3.5

Once you have followed one of the above 3 installation methods, you should see the .NET Framework 3.5 Feature installed. You can verify this via:

  1. The GUI
  2. Powershell

Review installation of .NET Framework 3.5 using the Server Manager

If you open Server Manager and open Add Roles and Features, you should see the following for the .NET Framework 3.5 installation:

.NET Framework 3.5 feature installed on Windows Server 2012

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 still my most popular blog post on this site. For the past 7 years, since this blog post was first published, 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 as well.

When did you first encounter this issue and is it still applicable to you?

Please leave a comment below with your answer!


Related posts

Sponsored Tech Tip: Install your .NET framework on high performance virtual dedicated server such as Windows Server to monitor/access it remotely from anywhere, anytime on any device(PC/Mac/Android/iOS) with desktop hosting service from If you prefer a server, Rent a Hyper-V dedicated virtual server at affordable pricing and 24*7*365 days live tech-support from one of the leading DaaS providers – Apps4Rent.


  1. Thanks for the post. Pretty crazy this made it past QA… you’d think installing .NET 3.5 would be a pretty key thing to test 🙂

  2. Just used this to install SQL2012 on a Windows Server 2012 virtual box. It worked fine so thanks for the advice. Am going to use it to create a Sharepoint 2013 farm.

    BTW I set up another test box and used the option that appears at the bottom of the same window as the error message (shown in yellow above) and this installed the feature very quickly. Am going to do this to all my servers as a precautionary measure.

  3. Thank you, i actually used ps with Install-WindowsFeature NET-Framework-Core –Source D:\Sources\sxs, thanks for the tip.

    My issue was then installing SQL server 2008r2 onto the server 2012 box, all default options, it failed to install, is there anything else i need to be aware of?

  4. I tried the recommended solution, but I get the error 0x800f081f. I tried to copy the entire folder on the local disk and change path same problem

  5. Hey Zero,

    I was running into the samething you were. I mounted the OS installation ISO and ran the command it and ended up running succcessfully. Hope that helps.

  6. .NET 3.5 sources are on the CD/.iso of Windows Server 2012 in
    :\sources\sxs (as you mentionned).

    But When adding up the .NET 3.5 feature via Server Manager on your Windows Server 2012, when on the “Confirm installation selections” screen, there is a link at the bottom named “Specify an alternate source path” where you give the path I wrote above. Clicking install will work add .NET 3.5 flaslessly.

  7. I just re-read what I’ve typed late last night… didn’t know the path would come out distorted like that. The ‘backslashes’ were interpretted it seems (is your site protected from injections?).

    Also, sorry for the typos… it was REALLY late for me! 🙂

  8. I did many times like you mentioned above with no result it is giving me this error Error:0x800f0906. Any help please

  9. “Error 87” is what i get while pushing the command ahead in the cmd.I am still guessing what to do next,probably the feature “NEWTECH”was the thing I need to know how to get in the cmd.I need a assistance in this,Is there any one who can help out…………………

  10. if the above method does not work for you. Use add feature via server manager tick to install .net35 framework and on the next page specify the sources\sxs\path which should be you iso dvd. this should work.

    Many thanks

  11. This command works perfect:
    dism /online /enable-feature /featurename:NetFX3 /all /Source:D:\sources\sxs /LimitAccess

    Thanks so much

  12. What you’re missing is the bottom of that screenshot that allows you to select alternate paths. which is really all you’re doing via the cmdline specifying the CD as the location. so its not a bug, its just poorly designed UI. And perhaps its stupid that they force you to use the CD to get it installed.

  13. The solution you gave worked perfect.
    dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess

    I could not install the .NET 3.5 from the Server Manager on 2012 server. I was about to give up then, I googled a fix for the last time and I found your solution. A M A Z I N G… Thanks!

  14. Got a 0x800f081f error with D:\ mapped and all. What a cluster fuck of an install this is. On the RC I could live with it, not after paying 2000 euros for a license. This will not do. Not to mention no WSUS support unless that’s installed on Windows 2012 too, which you need .net 3.5 for. I don’t even.. Windows 2012 looks more and more like an open source project, what are they doing?

  15. Is it possible that framework 3.5 cannot be installed on evaluation licence of WS2012 datacenter? I’ve tried this method after I’ve tried several times adding a feature. I even tried to run installer directly but result is the same….failed to install.
    Any thoughts would be appreciated.

  16. After downloading dotnetfx35, and trying every which way to get it to install (because this the way we did it in class)just using the 2012 windows install ISO was so easy. I guess since it will not install from add / remove features in Srv Mgr I just thought it was not in the 2012 windows package. Why include it but in the install medium, have a check box for it in add features and then not let it work. It’s Sooooooooooooooooo Microsoft.

  17. Stupid Microsoft. Why can they not leave it as it was in server 2008 R2. There it was working fine. Now you need to go change the location of where to find the files. How dumb!!!

    Thank you Daniel for taking the time and posting on this problem and the solution.


  18. Thanks Man, That’s so helpful.
    I can’t understand why Microsoft going on updating the .net framework and then ask you to install the old releases??
    as Jim Sperry says “It’s Sooooooooooooooooo Microsoft”.

  19. I have manually downloaded .NET Framework 3.5 installer from Microsoft website and on “Specify an alternate source path” form I’ve entered the path of my Downloads folder. Feature has been installed without error. It seems that it’s exactly the same installer as on Windows setup DVD. Your solution doesn’t require manual download but mine can be useful because sometimes the server is far away from your workstation and using DVD is not very handy.

  20. There are about 100 tutorials exactly like this one describing what to do if you have the disk, but not a single one describing what to do if you dont have the disk! Installing .net 3.5 on windows 8 without disk is not possible?? No this is not a pirated version, it’s legit but on a remote machine and running a virtual image. I cannot “insert disk”!!!!
    Please a tutorial on how to do this _without_ the frigging disk.

  21. Thanks for the article Daniel, worked a treat, though in my environment once I actioned the “dism” command .net 3.5 was then installed. No need to “choose” source.

    I manage a virtual environment, you’ll probably want to find a way to Mount an ISO of the disk and perform the same operation as above.

  22. There’s no need to use UpperCase. In my (albeit limited) experience with powershell all commands can be entered as lowercase. But I realize that it makes the commands more readable.

  23. Didn’t work for me. It failed and complained about non-matching verification information.

    However one in PowerShell DID WORK:
    Install-WindowsFeature NET-Framework-Core

    It was the only solution that worked on my 2012 R2 Standard evaluation.

  24. With PowerShell :
    Install-WindowsFeature has a parameter by the name -Source where you can specify the path to alternate WinSxS directory on a mounted image, network path etc.

    Install-WindowsFeature NET-Framework-Core -Source D:\source\sxs

    The above will work too

  25. Hi Daniel, helpful article, but didn’t work for me though 🙁

    I tried the Step 2 first about 10 odd times, but was unsuccessful. Then I used Step 1, but it got stuck at 65.9% for something like 10 odd minutes, then moves onto 66.2% where it exits with error code: 14028. A component’s file does not match the verification information present in the component manifest.

  26. Thanks!
    Of course, since the files are on the CD/ISO anyway, do not know why the feature installation cannot find them on its own. . .

  27. It is important to understand why you get this message as this will help you choose what to do next.
    1. If your machine is connected to the Internet, you can continue with the installation and the “Add Roles and Features” wizard will download the required binaries from the Internet. There is a logic behind this, as you get an updated version of the binaries.
    2. We are talking about 200MB of data. If you have a slow connection and the latest .Net 3.5 SP downloaded, the method suggested by Daniel is a very good choice.
    3. The installation fails, and the only way to install .Net 3.5 is the Daniel’s method when:
    – There is no Internet connection
    – There is a Proxy which blocks the connection to the download site
    – The Download location is not available – down for maintenance or update

    And yes, if you wonder why the installation of .Net 3.5 takes so long – you are downloading the 200MB binaries before they are installed

  28. hello when i run the command see this error

    Error: 0x800f081f

    The source files could not be found.
    Use the “Source” option to specify the location of the files th
    o restore the feature. For more information on specifying a sou

    The DISM log file can be found at C:\Windows\Logs\DISM\dism.log

  29. I had best results referencing the server location where the SHARED .ISO/.WIM file resided via the FQDN of the server rather than NetBIOS as this may imply to others..

  30. We tried everything and no go, but by some coincidence I found out that if the server is not in a domain (just a workgroup), the server installs the dotnet3.5 without any problem and fixes 🙂

  31. I tried it, the message I get is: ‘dism’ is not recognized as an internal or external command, operable program or batch file.

  32. It’s worth noting that the two methods use different authentication to the source media files when accessed remotely. For a locally attached disk or SXS copied locally, the two methods are roughly equivalent.

    In the remote case:
    Using dism.exe will access the files under your user credentials.
    Using the wizard or install-windowsfeature cmdlet will access the source files under the machine$ account. This is similar to how hyper-V, for example, accesses VHDs on a remote shared storage.

    Thanks for a great article.

    — Microsoft Windows Server Deployment team.

  33. didn’t worked
    I received this error
    Enabling feature(s)
    [===========================66.5%====== ]

    Error: 0x800f0906

    The source files could not be downloaded.
    Use the “source” option to specify the location of the files tha
    ion on specifying a source location, see

    The DISM log file can be found at C:\Windows\Logs\DISM\dism.log

  34. Good Morning,
    i have the same problem of the user Mike Lefebvre. I’m in workgroup. I tried all possible ways also changing a registry key. The source file are copied in the local disk and i’m able to read and write in this folder. Any another solutions?

  35. The command line version worked for me, not the GUI. I had to burn a DVD and attach it to the virtual server before Install would find the files. Then NetFX3 installed. Strange that the GUI doesn’t let you browse to the alternate file location. THANK YOU for the solution!!!

  36. The reason the install had failed in my setup was because WSUS was enabled on my servers. Once i disabled WSUS on my servers by deleting the keys in the registry all worked perfect.

  37. Hi people,

    I don’t have a installation CD but and ISO file of win server 2012. I copied this file to my desktop. When adding dotnet3.5 feature and need to specify path, I used the path c:\users\administrator\desktop\. Didn’t work for me. Been trying out many things a few days… Appreciate any help. Many thanks.


  38. Thanks Shaun, “Remove update Security Update 2966827 and it will install just fine.Then reinstall the update.” Worked for me!

  39. For me too! Thanks David !

    “David Eaton says:
    September 24, 2014 at 11:29
    Thanks Shaun, “Remove update Security Update 2966827 and it will install just fine.Then reinstall the update.” Worked for me!”

  40. What I find most people miss is that the INSTALL button is available. Most people see the warning and then see the NEXT button disabled and go looking for an answer. @NetoMeter points out the options (e.g. you have no or really slow Internet connection).

    If you see this warning and have a half-way decent connection, just click Install and it will download what is required and install it for you.

  41. Its pretty annoying that the Server Manager/Add Features applet can’t go fetch the files it needs directly from the internet these days. You have to have DVD around, seriously? I understand leaving out optional components but this is just a bunch of makework. In a secure environment with no internet access, OK, I understand needing the DVD. It’s little things like this that drive us nuts.

    Thanks for the instructions, though!

  42. Awesome. Worked for me. New install of a Server 2012 R2 instance for a VM on Stratus everRun. Not sure why it didn’t take on this install as it has worked before on other builds but, this one was not taking it until this work-around. Thanks again.


  43. Very relevant and to the point. I did not need to go back and specify the path after following these instructions as the feature was added. Thank you so much for this fix.

  44. For 2 days , I tried every thing , even downloaded it from Microsoft , nothing had worked, your method worked so beautifully , thanks a lot , your are a champion

  45. Many thanks Daniel. I had similar experience as Sam (March 15th) where nothing worked, even an offline installer. Tried your command line version and this worked a treat. Many hours of head scratching saved !!
    Cheers, Alan.

  46. Important!!! during the net 3.5 Installation the Server try to connect to Windows update Server. But if u put Server already into WSUS/OU where WSUS is configured by GPO: Server can not connect to Windows update Server anymore. you will get error message anyway. Solution: put Server to an OU where WSUS is not configured. make gpupdate /force or reboot afterwards. Now Server is aible to get latest net 3.5 files from Internet and Features install will walk through properly

  47. @Jacques Lafalize – by the way. of course you will get same result if u remove Server from Domain. 😉 But it is not neccessary

  48. Thank you soooo much!
    This saved not only my mind but truly made me look like a hero!!!

    This really made my day.

  49. Brilliant – thanks!. We had an .iso of Server 2012 Open Licence which had worked before on many VM installs but failed on one machine. The tip to put d:\sources\sxs as an alternative source in the GUI resolved it.

  50. Thanks a lot… this really works!!! 🙂

    Just want to add one thing:- if you are not connected to Windows update Server, mount OS installation DVD, and specify the same drive in the path mentioned.

  51. Rather than remove the server from the domain to get it to talk to Windows Update. just change the HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\UseWUServer to 0, restart the Windows Update service and then try to install it. After installation, change the key back to 1 and restart Windows Update service again.

  52. Rather than remove the server from the domain to get it to talk to Windows Update. just change the HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\UseWUServer to 0, restart the Windows Update service and then try to install it. After installation, change the key back to 1 and restart Windows Update service again.

    Thanks! that worked!

  53. Thanks. I am not a Windows guy but occasionally have to install Windows applications. Your blog fixed my issue quickly and effectively. I really appreciate the trouble you took to publish this.

  54. Thank you! This initially failed but I tried again, this time capitalizing the D: for the path to opt drive and it worked. (don’t know why that mattered). This works on Server 2016 preview as well.

  55. brilliant from you sharing your solution with us. so nice.

    big shit again from MS. in the days of automation

  56. For those who have windows install media as ISO (image) file, the following works:
    1. Right click on the ISO file and open with “Windows Explorer”.
    2. Wait for few seconds to get the content on the explorer. You can see the following directories:
    a. boot
    b. efi
    c. sources
    d. support, other files.
    3. Now, go to “sources”->”sxs”
    4. In the address bar, copy the path and paste in the command given in step #1.
    Ex: dism /online /enable-feature /featurename:NetFX3 /all /Source: /LimitAccess

    This worked for me.


    • Typically after opening in explorer the iso will mount as the D drive.

      dism /online /enable-feature /featurename:NetFX3 /all /Source:d:sources/sxs /LimitAccess

      That command with the / between the sourses and sxs worked for me.

  57. Hello…. Sir
    I am form India. i have a lenovo server ST550. i am Installed Server OS 2016R2. now i want to installed on system .net 3.5 version for my ERP Softwre work.
    how to Install install ??? or .net 3.5 ver Its install on 2016 or not install ???


Please enter your comment!
Please enter your name here