I've fixed more "this application requires .NET Framework 3.5" pop-ups than I can count — usually on fresh Windows installs where an old utility or a game launcher refuses to start. The good news in 2026: you don't need the third-party offline installers this article used to recommend (that download has vanished anyway). Windows 10 and 11 have .NET 3.5 built in as an optional feature, and even a fully offline PC can get it from the Windows install media. Here's every working method.
Quick answer: On Windows 10/11, open Turn Windows features on or off, tick .NET Framework 3.5 (includes .NET 2.0 and 3.0), and let Windows fetch it — or run `DISM /Online /Enable-Feature /FeatureName:NetFx3 /All` in an admin Command Prompt. For offline PCs, mount a matching Windows ISO and point DISM at its `sources\sxs` folder. Microsoft's standalone 3.5 installer exists only for Windows 8.1 and older.

Why you need .NET 3.5 (and why it's not just "installed")
The .NET Framework 3.5 is the runtime layer for software written between roughly 2005 and 2012 — accounting tools, engineering utilities, some classic games and their launchers. It bundles .NET 2.0 and 3.0 underneath it, which is why a single legacy app can demand "3.5" and mean all three.
Windows 8 and newer deliberately stopped pre-installing it (to save disk space) and instead download it on demand as a Windows feature. That design is why you see two failure modes: the install stalling on "downloading required files," or error codes like 0x800F0906 and 0x800F0954 when the machine can't reach Windows Update. Every method below solves one of those two problems.
Method 1: Turn Windows features on or off (the easy way)
1. Press Win + R, type `optionalfeatures`, press Enter.
2. Tick .NET Framework 3.5 (includes .NET 2.0 and 3.0) — don't touch the sub-items unless you need WCF/HTTP activation for servers.
3. Click OK and choose "Let Windows Update download the files for me."
4. Wait for the download (a few minutes on normal connections) and restart if prompted.
This works on any online PC and is the first thing to try. If it hangs or errors, skip to Method 3 — that's what it's for.
Method 2: The DISM command (same thing, faster)
Open Command Prompt or Terminal as administrator and run:
“`
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
“`
Windows pulls the payload from Microsoft's servers and enables the feature — typically 2-5 minutes. Add `/NoRestart` if you want to control the reboot yourself. This is my default on client machines because it shows real progress instead of a spinner.
Method 3: Fully offline install from Windows install media
This is the method the old third-party "offline installers" automating — and it's a one-liner once you know it. You need a Windows ISO (or USB/DVD) matching your Windows version and build (a Windows 11 23H2 ISO for a 23H2 machine, and so on):
1. Download the matching ISO from Microsoft (search "Download Windows 11 ISO" — official page), right-click it and Mount — it appears as a new drive letter, e.g. `E:`.
2. In an admin Command Prompt, run:
“`
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs
“`
3. Replace `E:` with your mounted drive letter. The `/LimitAccess` flag tells DISM to use only your source — no internet needed.
4. Done in under a minute; restart if prompted.
This is what I use on air-gapped workshop machines and freshly-imaged PCs before they ever touch a network. The official Microsoft documentation for installing .NET 3.5 on Windows describes the same approach — it's supported, not a hack.
Tip: if the source folder is wrong or mismatched, DISM throws 0x800F0906 immediately — that error is almost always "ISO doesn't match this Windows build," not a corrupted system.
Method 4: The official standalone installer (Windows 8.1 and older only)
On Windows 7, 8, or 8.1 — where the feature-on-demand system doesn't exist — you want Microsoft's full offline installer for .NET Framework 3.5 SP1, linked from Microsoft's official .NET download page (look for ".NET Framework 3.5 SP1" among the runtime downloads). It's a ~65-230 MB standalone package that installs without any network access. This is the only scenario where a classic "offline installer" is the right tool — and it comes from Microsoft, not a third-party mirror.
Whatever happened to the third-party offline installer
The 2017 version of this article recommended a community wrapper tool (the TechGainer .NET 3.5 Offline Installer) that automated the ISO-source method above. Its download is no longer online (the file 404s as of this update), and honestly, it's not missed: the tool was a GUI around one DISM command, and Windows 10/11's built-in flow has matured enough that a wrapper adds risk (old download sources, unverifiable binaries) without saving any time. The TechGainer article itself is still live for context.
Fixing the common errors
- 0x800F0906 / "The source files could not be downloaded" — you're offline or the ISO source mismatches. Use Method 3 with a matching ISO, or get online and retry Method 1.
- 0x800F0954 — your PC pulls updates from WSUS (typical on company machines), and the optional-feature request dies there. Fix: Group Policy → Computer Configuration → Administrative Templates → System → enable "Specify settings for optional component installation and component repair" and tick "Download repair content and optional features directly from Windows Update" — or set the registry key `UseWUServer` to 0 under `HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU`, restart the update service, install, then revert.
- 0x800F081F — same family as 0x0906; the source simply doesn't contain the files. Fresh matching ISO fixes it.
- Stuck at "downloading required files" — that's the online fetch dying; DISM with `/Source` (Method 3) bypasses it entirely.
Do you even need 3.5 in 2026?
If every program you run is modern, no — Windows won't pester you for it. You need it when a specific legacy app, game launcher, or line-of-business tool demands it, and the requirement is usually printed in the app's own error dialog. Nothing modern is built on it (current development uses .NET 6/8+), so install it only when something asks — the feature is two minutes to add and trivially removable from the same `optionalfeatures` screen.
For general Windows upkeep around legacy installs, our guides on removing duplicate files and the best free cleanup software pair well with this one.
Frequently asked questions
Is there an official offline installer for .NET Framework 3.5 on Windows 10 and 11?
Not as a standalone download — and none is needed. Windows 10/11 treat .NET 3.5 as an optional feature: the payload ships inside your Windows install media (`sources\sxs` folder) or arrives via Windows Update. For a truly offline PC, mount a matching Windows ISO and run the DISM command with `/LimitAccess /Source:` — that IS the offline installer, straight from Microsoft.
Is .NET Framework 3.5 still supported in 2026?
Yes, in the way legacy runtimes are: Microsoft continues to support .NET Framework 3.5 SP1 as part of Windows (it's a component of the OS rather than a separate product with its own lifecycle drama). It receives servicing through Windows Update. It's obsolete for development — nothing new should be built on it — but as a compatibility layer it remains fully maintained.
Why does an old app say it needs .NET 3.5 when I have .NET 4.8 installed?
The Framework versions are separate runtimes, not upgrades — .NET 4.8 does not include 2.0/3.x. An app compiled against 3.5 genuinely needs that runtime present. Windows can enable both side by side, so ticking the 3.5 feature won't break anything that uses .NET 4.8.
How do I install .NET 3.5 without internet on Windows 11?
Mount a Windows 11 ISO that matches your installed build, then run: `DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs` (swap in your mount drive letter). The whole install takes under a minute. If you get a source error, the ISO build doesn't match your Windows version — download the matching one from Microsoft.
Can I uninstall .NET Framework 3.5 after installing it?
Yes — reopen `optionalfeatures`, untick .NET Framework 3.5, and Windows removes the payload. Any app that depended on it will fail to start until you re-enable it, which is the same two-minute process. It's a clean toggle both ways; no reinstall of Windows is ever involved.
Related reading
I've used the ISO-and-DISM method on everything from office PCs to air-gapped lab machines — if your DISM command throws an error code, paste it in the comments and I'll tell you which switch fixes it.

