先检查.NET Framework 4.8和Visual C++ 2017 x64是否安装并注册表Release值≥528040,再确认页面文件已手动设置为8192/16384 MB、临时目录权限正常、杀软实时防护已关闭。
setup.exe 运行后卡在“先决条件检查”阶段怎么办
windows server 2019 上双击 setup.exe 后,界面常卡在“正在执行先决条件检查”或报错退出,不是安装程序坏了,而是 windows 系统缺了几个关键依赖或配置没到位。
常见错误现象包括:
- 界面长时间无响应(超过5分钟)
- 弹出红色提示:“Some of the prerequisites failed” 但没具体说明哪项失败
- 日志里出现
INS-30131(无法访问临时目录)、INS-32037(.NET Framework 版本不足)、INS-32012(Visual C++ Redistributable 缺失)
必须提前装好的组件只有两个:.NET Framework 4.8 和 Microsoft Visual C++ 2017 Redistributable (x64)。Server 2019 默认自带 .NET 4.7.x,不满足 Oracle 19c 要求;VC++ 2017 也未必预装。
实操建议:
- 先运行
winver确认系统版本是 Windows Server 2019(非 LTSC 或 Core 版,GUI 桌面体验必需) - 用 PowerShell 检查 .NET 版本:
[System.Environment]::Version—— 若显示 4.7.x,需手动安装ndp48-x86-x64-allos-enu.exe - 从微软官网下载并静默安装 VC++ 2017 x64:运行
vcredist_x64.exe /quiet /norestart - 解压路径必须全英文、无空格、无括号,比如
D:\oracle\19c可以,C:\Program Files\Oracle或D:\Oracle 19c会直接触发INS-30131 - 临时目录(
%TEMP%)不能指向网络路径或权限受限位置;建议临时改到C:\temp并赋予 Administrators 完全控制权
INS-32037 错误:.NET Framework 4.8 检测失败的绕过陷阱
Oracle 安装程序用的是硬路径检测逻辑,哪怕你已装好 .NET 4.8,它仍可能因注册表键缺失或路径未索引而报 INS-32037。
这不是重装 .NET 就能解决的问题。根本原因是 Oracle 的检查脚本只认特定注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release,且值必须 ≥ 528040(对应 4.8)。
验证方式:
- 打开注册表编辑器,定位到上述路径,确认
ReleaseDWORD 值存在且数值正确 - 若不存在或值太小,手动创建或修改——但更稳妥的做法是用官方离线安装包重装 .NET 4.8(非 Windows Update 推送版)
- 不要试图用
-ignoreSysPrereqs参数跳过检查,这会导致后续监听器启动失败或数据库实例无法创建 - 如果服务器启用了 Windows Defender Application Control(WDAC),需临时禁用,否则 setup.exe 会被拦截且不报明确错误
内存和交换空间不足导致检查中断
Oracle 19c 安装程序在检查阶段会模拟内存分配行为,要求物理内存 ≥ 4GB,且页面文件(虚拟内存)大小 ≥ 1.5 倍物理内存。
Windows Server 2019 默认页面文件设为“自动管理”,但在某些虚拟机模板中会被设为“无分页文件”,此时即使物理内存充足,setup.exe 也会在检查阶段直接退出,日志里只显示“Failed to allocate memory”。
操作要点:
- 右键“此电脑”→“属性”→“高级系统设置”→“性能”→“设置”→“高级”→“虚拟内存”→“更改”
- 取消勾选“自动管理所有驱动器的分页文件大小”
- 选中系统盘(通常是 C:),选择“自定义大小”,输入初始值和最大值(例如 8192 MB / 16384 MB)
- 点击“设置”→“确定”,重启后生效
- 别信任务管理器里“已提交”的数字,Oracle 看的是页面文件实际配置值
防火墙和杀毒软件干扰 setup.exe 的静默行为
setup.exe 在检查阶段会拉起多个子进程(如 oraSetup.exe、java.exe),部分企业级杀软(如 Symantec、McAfee)或 Windows Defender 的“基于声誉的防护”会拦截这些进程,造成检查停滞或闪退。
现象是:鼠标变成沙漏后几秒就恢复,安装界面消失,但后台没残留进程,事件查看器里有 Event ID 1000 或 Event ID 11 报错。
临时应对方法:
- 以管理员身份运行 PowerShell,执行:
Set-MpPreference -DisableRealtimeMonitoring $true - 关闭第三方杀软的主动防护模块(不是卸载)
- 将整个解压目录(如
D:\oracle\19c)添加到杀软白名单 - 注意:不要禁用 Windows 防火墙服务本身,只需关掉“实时保护”,安装完成后再恢复
真正容易被忽略的点是:Oracle 19c 的预检查不是纯静态校验,它会在后台启动一个嵌入式 Java 进程做动态探测。这个过程对系统环境异常敏感,任何一层拦截(注册表、.NET、杀软、页面文件)都可能导致无声失败。别急着重试,先看 %TEMP%\OraInstall<date>\installActions<time>.log</time></date> 里最后一段 ERROR 行,那才是真实病因。


















