On enterprise Windows devices, .NET Framework 3.5 installation commonly fails for exactly the reasons listed: missing feature payload files, WSUS or Group Policy restrictions, or servicing-related source resolution failures.
Key causes by error pattern:
-
0x800F0906
- Windows could not download the required source files.
- This commonly occurs when the device cannot reach Windows Update.
-
0x800F081F
- The source files could not be found.
- This indicates the .NET 3.5 payload is missing and no valid alternate source was provided.
-
0x800F0907
- Group Policy or network policy is preventing Windows from downloading the files.
- This is specifically associated with policy settings that block Internet-based repair content.
Why this happens in enterprise environments:
- In Windows 10 and Windows Server 2012 R2, .NET Framework 3.5 is a Feature on Demand.
- The metadata is present, but the binaries are not included locally.
- When the feature is enabled, Windows attempts to retrieve the missing files from Windows Update unless an alternate source is configured.
- If devices are configured to use WSUS, or policy blocks direct Windows Update access, installation can fail.
Practical resolution paths:
- Use installation media as the source
- Create or obtain Windows installation media that matches the installed Windows version.
- Mount the ISO.
- Configure Group Policy Specify settings for optional component installation and component repair.
- Set Alternate source file path to the mounted ISO
sources\sxsfolder. - Run:
gpupdate /force - Then enable .NET Framework 3.5 again.
- Allow direct Windows Update access for repair content when WSUS is in use
- In the same Group Policy setting, enable the option to contact Windows Update directly for repair content instead of WSUS.
- This requires Internet and Windows Update access.
- Normal servicing can still continue through WSUS.
- Configure a local source path for enterprise deployment
- A local source can be staged from installation media by copying
\sources\sxsto a folder such asC:\dotnet35. - The servicing policy can then point to that local source path.
- A WIM file can also be used as the source, with the required image index.
- Check servicing prerequisites if setup is blocked
- Ensure the installation is being run with administrative privileges.
- Restart the device if a previous installation is pending.
- If setup reports component store corruption, servicing repair may be required before .NET 3.5 can be enabled.
What to verify in the environment:
- Whether affected devices are configured to use WSUS.
- Whether Group Policy blocks optional component repair from Windows Update.
- Whether the alternate source path is configured and points to a valid
sources\sxslocation. - Whether the source matches the installed Windows version.
- Whether CBS or DISM logs show
CBS_E_DOWNLOAD_FAILURE,CBS_E_SOURCE_MISSING, orCBS_E_GROUPPOLICY_DISALLOWED.
For enterprise rollout, the most reliable approach is:
- provide a matching Windows source,
- configure the optional component repair policy,
- point to
sources\sxs, - run
gpupdate /force, - then enable the feature.
If the environment must stay on WSUS only, a local or shared source path for sources\sxs is the supported approach.
References: