How to Fix Windows Error 0x800F0954 When Installing .NET Framework

Windows Error 0x800F0954 - .NET Framework installation failed warning screen with Windows logo and yellow caution icon on blue background.

Seeing “Error 0x800F0954” when you try to enable .NET Framework on Windows?
You’re not the only one—and the fix is often much simpler than it looks.

This error usually hits when you try to turn on .NET Framework 3.5 (needed by many older apps and tools), either from:

  • Windows Features
  • Or when installing an app that automatically tries to enable .NET

In this guide, we’ll walk through:

  • What error 0x800F0954 actually means
  • Why it appears especially on PCs using WSUS or corporate policies
  • Step-by-step fixes from beginner-friendly to expert level
  • Extra tricks for domain / enterprise environments

Let’s get your app and .NET Framework working again.


PR

🔍 What does 0x800F0954 mean?

Error 0x800F0954 typically appears when Windows tries to install an optional feature—most commonly .NET Framework 3.5—but can’t download the required files.

Typical scenarios:

  • Your PC is configured to use a WSUS (Windows Server Update Services) server.
  • That WSUS server doesn’t host the .NET 3.5 source files, or blocks the request.
  • Windows is not allowed (by policy) to contact Microsoft’s servers directly.

In short:

Windows is told:
“Get .NET 3.5 files from WSUS only.”
But WSUS doesn’t have them → installation fails with 0x800F0954.

The fixes below focus on letting Windows:

  • Temporarily bypass WSUS, or
  • Use a local source (ISO / network share), or
  • Change policy settings to allow direct download from Microsoft.

Important:
If this is a work or school PC managed by IT, your organization may not allow these changes.
In that case, always follow your IT policy or contact your administrator first.


🛠 Fix 1 – Temporarily bypass WSUS (Use Microsoft Update directly)

If your PC is joined to a domain or using WSUS, Windows will try to get .NET Framework files from that WSUS server. When the server doesn’t have them, you see 0x800F0954.

You can temporarily switch Windows Update back to Microsoft’s servers by editing the registry.

Registry warning
Editing the registry incorrectly can cause problems.
Follow the steps carefully and create a backup or restore point if possible.

  1. Press Win + R, type regedit, and press Enter.
  2. If prompted by UAC, click Yes to allow changes.
  3. In Registry Editor, navigate to: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
  4. In the right pane, look for a value named UseWUServer.
    • If it exists, double-click it and set Value data to 0.
    • If it does not exist, you can create it:
      • Right-click on the right pane → New → DWORD (32-bit) Value
      • Name it UseWUServer
      • Set its value to 0.
  5. Close Registry Editor.
  6. Restart the Windows Update service:
    1. Press Win + X and choose Windows Terminal (Admin) or Command Prompt (Admin).
    2. Run: net stop wuauserv net start wuauserv
  7. Now try enabling .NET Framework 3.5 again from:
    • Control Panel → Programs and Features → Turn Windows features on or off, or
    • The app that requested .NET Framework.

If the installation succeeds, you can set UseWUServer back to 1 afterwards to restore the original WSUS settings (if required by your organization).


🧰 Fix 2 – Install .NET Framework via DISM or PowerShell (with a local source)

If the normal “Windows Features” dialog fails, command-line tools give you more control.

To use this method, you need:

  • A Windows installation ISO or USB
  • Or a network share containing the sources\sxs folder

2-1. Using DISM (Command Prompt)

  1. Mount your Windows ISO by double-clicking it, or plug in your Windows USB.
  2. Note the drive letter of the mounted media (for example D:).
  3. Open Command Prompt as Administrator:
    • Press Start → type cmd → right-click → Run as administrator
  4. Run the following command (replace D: with your actual drive letter): DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

Explanation:

  • /Online – targets the running OS
  • /FeatureName:NetFx3 – .NET Framework 3.5
  • /All – installs all parent features
  • /LimitAccess – prevents contacting Windows Update; only uses your specified source

If the process reaches 100% and reports success, .NET Framework 3.5 should now be enabled.

PR

2-2. Using PowerShell

If you prefer PowerShell, you can use a similar approach:

  1. Open PowerShell as Administrator.
  2. Run (again replacing D: with your drive letter): Add-WindowsCapability -Online -Name NetFx3~~~~0.0.1.0 -Source D:\sources\sxs

Either method installs .NET directly from your local media, bypassing WSUS and the Windows Features UI.


🧹 Fix 3 – Clean up CBS logs (advanced)

In rare cases, corrupted CBS logs (Component-Based Servicing) can interfere with feature installation.

⚠ This is an advanced step. Don’t delete anything else under C:\Windows.

  1. Open File Explorer and go to: C:\Windows\Logs\CBS
  2. Copy the contents of this folder to a backup location (for example, a folder on your Desktop).
  3. After you’ve backed them up, you can delete the files inside the CBS folder (not the folder itself).
  4. Run the DISM command from Fix 2 again to install .NET Framework.

This can remove corrupted log files that confuse the servicing process.


🧭 Fix 4 – Change Group Policy for optional component repair

On some systems, a local policy prevents Windows from downloading needed files for optional components like .NET 3.5.

You can adjust that policy:

📝 Note: The Group Policy Editor (gpedit.msc) is not available in Windows Home editions.

  1. Press Win + R, type gpedit.msc, and press Enter.
  2. In the left pane, navigate to: Computer Configuration → Administrative Templates → System
  3. Find the policy named:
    “Specify settings for optional component installation and component repair”
  4. Double-click it and set it to Enabled.
  5. Make sure the option:
    “Download repair content and optional features directly from Windows Update instead of Windows Server Update Services (WSUS)”
    is checked.
  6. Click ApplyOK.
  7. To apply the change immediately, open Command Prompt (Admin) and run: gpupdate /force
  8. Restart your PC (if prompted), then try installing .NET Framework again.

This policy explicitly allows Windows to fetch optional components from Microsoft’s servers even when WSUS is normally used.


🧪 Expert tips & hidden workarounds

If the main fixes above haven’t worked yet, don’t panic. There are additional tricks often used by system administrators, especially on domain-joined PCs.

5-1. Use PowerShell immediately after changing UseWUServer

In many cases, you don’t need a full reboot after setting UseWUServer to 0. You can:

  1. Change UseWUServer to 0 as in Fix 1.
  2. Restart only the Windows Update service: net stop wuauserv net start wuauserv
  3. Then open PowerShell (Admin) and run: Add-WindowsCapability -Online -Name NetFx3~~~~0.0.1.0

If the policy and network allow it, Windows will pull .NET 3.5 directly from Microsoft without requiring a full system restart.


5-2. Install .NET from a network share instead of ISO

In corporate environments, you may not be allowed to mount ISOs locally, but you might have access to a shared folder with the sources\sxs directory from a Windows installation.

  1. Map or access the shared folder (for example, \\SERVER\Share\WinFiles).
  2. Make sure it contains sources\sxs.
  3. Run DISM with the UNC path: DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:\\SERVER\Share\WinFiles\sources\sxs

This lets you install .NET Framework 3.5 using a centralized, IT-approved source.


5-3. Try DISM without /LimitAccess (home / personal PCs)

If your PC is not domain-joined and not using WSUS, you may not need a local ISO at all.

On home or standalone PCs, simply run:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All

In this case, Windows is allowed to contact Microsoft’s servers directly and download everything it needs.


5-4. Check Event Viewer for detailed error messages

If installation still fails and you’re not sure why, Event Viewer can provide more detailed clues.

  1. Press Win + S, type Event Viewer, and open it.
  2. In the left pane, go to: Windows Logs → Setup
  3. Look for recent entries related to:
    • .NET Framework
    • CBS (Component-Based Servicing)
    • DISM or feature installation

Error codes or messages there can tell you whether the problem is:

  • Permissions-related
  • Due to a missing source path
  • Caused by another component failure

With that information, you or your IT admin can troubleshoot more precisely.


5-5. A common admin pattern in WSUS environments

Many administrators use the following pattern when dealing with 0x800F0954:

  1. Temporarily disable WSUS for the client (UseWUServer = 0).
  2. Restart the Windows Update service.
  3. Install the needed feature (e.g., .NET 3.5) using PowerShell or DISM.
  4. Re-enable WSUS (UseWUServer = 1) and restart the service again.

This keeps the PC aligned with corporate update policies while still allowing one-off installations when WSUS doesn’t have certain components.


💡 Why these fixes work

In many WSUS-based or tightly controlled environments, .NET Framework 3.5 is simply not available from the usual update source. Windows is told:

“Only talk to WSUS, never to Microsoft directly.”

The steps you’ve seen here:

  • Registry edits – temporarily switch Windows Update from WSUS to Microsoft
  • DISM / PowerShell – explicitly point Windows to a local source (sources\sxs)
  • Group Policy changes – allow Windows to download optional components directly

…all have the same goal:
Give Windows a valid, accessible source for .NET Framework files.

Once that source is available, error 0x800F0954 usually disappears.


✅ Conclusion – Step-by-step recap

To fix error 0x800F0954 when enabling .NET Framework 3.5:

  1. Temporarily bypass WSUS by setting UseWUServer = 0 in the registry and restarting the Windows Update service.
  2. Install .NET Framework via DISM or PowerShell, preferably with a proper source:
    • ISO / USB: DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:X:\sources\sxs
    • PowerShell: Add-WindowsCapability -Online -Name NetFx3~~~~0.0.1.0 -Source X:\sources\sxs
  3. If needed, clean CBS logs and retry DISM.
  4. Enable the Group Policy “Specify settings for optional component installation and component repair” and allow downloads directly from Windows Update.
  5. On home PCs, try DISM without /LimitAccess to let Windows download files from Microsoft.

Most users solve the issue by following these steps in order.
If you’re still stuck, note:

  • Whether you’re on Windows 10 or Windows 11
  • Whether the PC is domain-joined / using WSUS
  • Which step failed and what exact message you saw

…then ask for help—that information makes troubleshooting much easier.


🔗 More Windows troubleshooting guides

▶︎ 🐢 File Explorer Running Slow After Windows 11 24H2 Update? Here’s How to Speed It Up!

▶︎ Fix Windows 11 24H2 Search Bar Not Working – Causes and Solutions

▶︎ 😴 Why Does My Laptop Battery Drain So Much in Sleep Mode? Real Fixes You Can Try Today

Back to English Article List