I have been struggling a bit with adding .NET Framework 3.5 on a few systems (and reference image for MDT).
The posts on MSDN and TechNet are good, but not always crystal clear.

They will tell you to run the GUI or the DISM-command. But not what specific requirements there are.
So here is how I solved the issues we were experiencing…

Problems with a WSUS-server

The .NET Framework 3.5 isn’t part of the local cache of binaries on a deployed server. Therefore, it actually has to be downloaded when it’s enabled. It can be downloaded through Windows Update (by default), or you can download it to a specific machine or share. If a server is configured to use WSUS, then it will try to use WSUS but will fail.

The workaround is to set a registry key on the client/server that tells it to not use WSUS for downloading .NET 3.5 and instead use Windows Update.

[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing] "RepairContentServerSource"=DWORD(2)

Installing manually via media

First of all you need to find the ISO/DVD with the installation media used for the system on which you would like to add .NET Framework. So if you have a Windows 8 client, you need the Windows 8 ISO. If you’re running Windows 8.1, you need the 8.1 ISO and so on.
If you use a Windows 8 ISO on a Windows 8.1 system it will fail.

  1. Either make a boot stick or copy the ISO to a USB memory.
  2. Insert it into the client.
  3. If you’re using a ISO mount it on the client system.
  4. Open PowerShell and run (where D: is the drive with the installation media):
    DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

When running this in a task sequence in SCCM or MDT simply copy the SXS-folder to a share and edit the path above.
If you’re not using a WSUS server you can simply use the GUI to add the feature.

Installing via GUI

To enable the .NET Framework 3.5 yourself through Control Panel. In Control Panel, choose Programs and Features, choose Turn Windows features on or off, and then select the .NET Framework 3.5 (includes .NET 2.0 and 3.0) check box. This option requires an Internet connection. You do not need to select the child items for Windows Communication Foundation (WCF) HTTP activation unless you are a developer who requires WCF script and handler mapping functionality.

 

Troubleshooting

If installing the .NET Framework 3.5 on demand or enabling it in Control Panel fails, you may get one of the following error messages:

  • 0x800f0906: “Windows couldn’t connect to the Internet to download necessary files. Make sure that you’re connected to the Internet, and click Retry to try again.”
  • 0x800F081F: “The changes could not be completed. Please reboot your computer and try again.”

These messages may be displayed for the following reasons:

  • Your computer is not connected to the Internet. Please connect, and then retry the operation.If you cannot connect to the Internet, you can enable the .NET Framework 3.5 by using the Deployment Image Servicing and Management (DISM) command-line tool and specifying the installation media (ISO image or DVD) you installed Windows 8 from.
    1. In Windows 8 or Windows Server 2012, open a Command Prompt window with administrative credentials (that is, choose Run as administrator).
    2. To install the .NET Framework 3.5 from installation media located in the D:\sources\sxs directory, use the following command:DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\sources\sxs

      where:

      • /Online targets the operating system you’re running (instead of an offline Windows image).
      • /Enable-Feature /FeatureName:NetFx3 specifies that you want to enable the .NET Framework 3.5.
      • /All enables all parent features of the .NET Framework 3.5.
      • /LimitAccess prevents DISM from contacting Windows Update.
      • /Source specifies the location of the files needed to restore the feature (in this example, the D:\sources\sxs directory).

      For more information about DISM parameters and options, see How to Enable or Disable Windows Features

  • You are using a local source, but the network location is inaccessible or doesn’t have the right content. Install the .NET Framework 3.5 from installation media as described in the previous bullet point.
  • Your administrator has configured your computer to use Windows Server Update Services (WSUS) instead of Windows Update for servicing. Ask your administrator to enable the policy to use Windows Update instead of WSUS.

If these instructions do not correct the problem, download the paper Microsoft .NET Framework 3.5 Deployment Considerations from the Windows Dev Center for more extensive troubleshooting information.