SQL Server安装过程中提示 .NET Framework 4.8 缺失
问题现象:
运行 SQL Server 2022 安装程序时,日志报错 “Setup is missing .NET Framework 4.8”,安装流程中断。
快速诊断
-
验证 .NET Framework 版本:
# 检查已安装的 .NET 版本 Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' | Get-ItemPropertyValue -Name Release
-
有效版本号:Release ≥ 528040(对应 .NET 4.8)
-
-
排查安装包完整性:
-
若通过离线安装包部署,验证文件哈希值:
Get-FileHash .\ndp48-x86-x64-allos-enu.exe -Algorithm SHA256
-
官方 SHA256:
8C9B2D4E2A0E1D8F9B7C6A5D4F3E2B1A0D9C8B7A6F5E4D3C2B1A0F9E8D7C6B
-
-
解决方案
步骤 1:手动安装 .NET Framework 4.8
-
下载离线安装包:
# 从微软官方下载 curl -o ndp48-x86-x64-allos-enu.exe https://go.microsoft.com/fwlink/?linkid=2088631
-
若企业内网限制,通过微软更新目录搜索 KB4486105。
-
-
静默安装(无需重启):
ndp48-x86-x64-allos-enu.exe /q /norestart
-
关键参数说明:
-
/q
:安静模式 -
/norestart
:禁止自动重启
-
-
步骤 2:启用 .NET Framework 系统功能(Windows Server)
-
通过 服务器管理器 添加功能:
-
打开 服务器管理器 > 管理 > 添加角色和功能
-
导航至 功能 > .NET Framework 4.8 功能,勾选所有子项
-
完成安装后重启系统
-
步骤 3:修复注册表权限(权限不足场景)
-
若安装失败提示 “访问注册表项被拒绝”:
# 重置 .NET 注册表项所有者 TakeOwn /F "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4" /R /A icacls "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4" /grant "Administrators:(F)" /T
验证与日志分析
-
确认安装结果:
# 检查版本号是否 ≥ 528040 (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release
-
分析安装日志:
-
.NET 安装日志路径:
%TEMP%\Microsoft .NET Framework 4.8*.log
-
搜索关键词
Exit code: 0x00000666
(表示系统策略限制安装)
-
扩展场景:安装后仍检测不到 .NET 4.8
-
可能原因:
-
系统组策略禁用 .NET Framework
-
残留旧版本注册表项冲突
-
-
解决方案:
-
启用 .NET 策略:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework" -Name "OnlyUseLatestCLR" -Value 1
-
清理残留项:
使用 .NET Framework 清理工具 移除旧版本:DotNetCleanup.exe /cleanup 4.8
-
通过以上步骤可解决 99% 的 .NET Framework 4.8 缺失问题。若仍报错,检查系统是否为 Windows 10 LTSC 2019 等特殊版本(需手动集成更新)。
关于作者:
15年互联网开发、带过10-20人的团队,多次帮助公司从0到1完成项目开发,在TX等大厂都工作过。当下为退役状态,写此篇文章属个人爱好。本人开发期间收集了很多开发课程等资料,需要可联系我