Affected versions: Windows Server 2016

πŸ“– ~1 min read

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution β€” Primary Fix
  7. Solution β€” Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

.NET Framework 4.8 installer on Windows Server 2016 reports HRESULT 0xc8000222 or leaves apps with FileNotFoundException after a repair attempt.

Environment & Reproduction

Reproduces when applying .NET 4.8 on a server with a partially failed update or with the ngen queue stuck.

ndp48-x86-x64-allos-enu.exe /q /norestart /log dotnet48.log

Root Cause Analysis

Failures stem from corrupted prior .NET payloads, blocked Windows Update component, or a stalled ngen optimisation queue.

Quick Triage

Inspect the installer log for the first error code and check ngen status.

Select-String dotnet48.log -Pattern 'Returning IDOK|Error:|HRESULT'
C:WindowsMicrosoft.NETFramework64v4.0.30319ngen.exe queue status

Step-by-Step Diagnosis

Verify Windows Update service health and component store.

Get-Service wuauserv
dism /online /cleanup-image /scanhealth
Illustrative mockup for windows-server-2016 β€” terminal_or_powershell
Diagnostic output for packaging/dotnet48-repair β€” Illustrative mockup β€” Progressive Robot

Solution β€” Primary Fix

Restart the Windows Update service, drain the ngen queue, and rerun the installer with chained logs.

Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.

Restart-Service wuauserv
C:WindowsMicrosoft.NETFramework64v4.0.30319ngen.exe executeQueuedItems
Start-Process ndp48-x86-x64-allos-enu.exe -ArgumentList '/q /norestart /log C:logsdotnet48.log' -Wait
Illustrative mockup for windows-server-2016 β€” error_dialog
Resolution for packaging/dotnet48-repair β€” Illustrative mockup β€” Progressive Robot

Solution β€” Alternative Approaches

Use the offline .NET 4.8 deployment package and repair using the Microsoft .NET Framework Repair Tool.

NetFxRepairTool.exe /q

Verification & Acceptance Criteria

Get-ChildItem registry shows .NET 4.8 Release value 528040 or later.

Get-ItemProperty 'HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full' | Select Release

Rollback Plan

Use System Restore or rollback the prior LCU only if no other path remains; .NET cannot be removed.

# Restore from system state backup before .NET change

Prevention & Hardening

Bake .NET 4.8 into base images and avoid in-place repair during peak hours.

# Validate Release value in golden image

Related: ngen queue stall, MSI 1603 install failures, and Windows Update service crashes.

Related tutorial: View the step-by-step tutorial for Windows Server 2016.

View all Windows Server 2016 tutorials on the Tutorials Hub β†’

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

Microsoft Learn troubleshooting documentation for .NET Framework installation and repair.

Need Expert Help?

If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β€” we respond within one business day.