解决问题1——安装Microsoft Edge WebView2出现弹窗

部署codex时,安装CC-switch时遇到无法打开桌面窗口的问题,只有在右下角工具栏中有个小图标,然后有个弹窗,说是缺少Microsoft Edge WebView2,所以就去下载这个。。

点击Microsoft Edge WebView2 | Microsoft Edge Developer连接后跳转

往下滑

选第二个(红色框)

下好后双击安装时出现下面这个问题,真是这个耽误了蛮长时间。

但其实磁盘空间非常充足,且权限也是够的。去问了大模型,尝试了很多方法(删文件夹,删注册表,命令行安装等等),前面一直报和图上相同的错误。。

因为尝试了很多方法,所以我也不确定是不是其中某一个起到了什么作用,所以就记录一下成功之前的操作:

复制代码
C:\Users\Administrator>takeown /f "C:\Program Files (x86)\Microsoft\Temp" /r /d y

成功: 此文件(或文件夹): "C:\Program Files (x86)\Microsoft\Temp" 现在由用户 "PC-20240911KKRG\Administrator" 所有。

C:\Users\Administrator>rd /s /q "C:\Program Files (x86)\Microsoft\Temp"

C:\Users\Administrator>takeown /f "C:\Program Files (x86)\Microsoft\EdgeCore" /r /d y

成功: 此文件(或文件夹): "C:\Program Files (x86)\Microsoft\EdgeCore" 现在由用户 "PC-20240911KKRG\Administrator" 所有。

C:\Users\Administrator>rd /s /q "C:\Program Files (x86)\Microsoft\EdgeCore"

C:\Users\Administrator>winget install Microsoft.EdgeWebView2Runtime
已找到 Microsoft Edge WebView2 Runtime [Microsoft.EdgeWebView2Runtime] 版本 149.0.4022.80
此应用程序由其所有者授权给你。
Microsoft 对第三方程序包概不负责,也不向第三方程序包授予任何许可证。
已成功验证安装程序哈希
正在启动程序包安装...
安装程序失败,退出代码为: 2147748098

但是在文件层面清理干净后,winget 依然报出完全相同的 2147748098(即十六进制的 0x80040902)错误。结合当前的状况,可以得出一个非常明确的结论:障碍已经不在文件系统里,而在系统的"注册表组策略"或者"Edge更新服务"彻底崩溃了。

很多系统(特别是经过精简优化的版本,或者装过拦截软件的系统)会在注册表里强行写入"禁止 Edge 组件更新"的组策略。WebView2 安装时一旦检测到这个拦截策略,就会直接触发 0x80040902 错误并强行退出。

既然现在已经处于管理员 CMD 环境中,直接用命令行进行"终极斩首":

第一步:强行清除注册表中的 Edge 拦截策略与残留

请在你的管理员 CMD 黑框中,依次复制粘贴并回车执行以下三条命令(如果有提示"找不到指定的注册表项",说明该项本就不存在,不用在意,继续执行下一条即可):

1. 删除组策略中的 Edge 更新拦截:

复制代码
reg delete "HKLM\SOFTWARE\Policies\Microsoft\EdgeUpdate" /f

2. 删除 Edge 更新的 64 位注册表残留:

复制代码
reg delete "HKLM\SOFTWARE\Microsoft\EdgeUpdate" /f

3. 删除 Edge 更新的 32 位兼容注册表残留:

复制代码
reg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate" /f

第二步:重启某些关键基础服务

有时候负责安装的系统底层服务挂起了,敲下面两行命令重启一下它们:

复制代码
net stop msiServer
net start msiServer

第三步:放弃 winget,直接运行"离线安装包"

winget 有时候会掩盖安装程序真实的报错细节。既然我们现在把文件和注册表都清空了,请直接使用之前下载好的那个约 150MB 的 Evergreen Standalone Installer(离线独立安装包)

  1. 确保将那个离线安装包(比如命名为 webview.exe)放在 C:\ 根目录或 D:\ 根目录下。

  2. 在 CMD 中直接输入它的路径并回车运行它,例如:

    复制代码
    C:\webview.exe
    
    *(或者你直接在文件夹里右键点击它 -> **以管理员身份运行**)*

    经过这套"文件+注册表"的双重深度清理,绝大多数被锁死的 WebView2 都能成功装上。 如果这次弹出了安

终极绕过方案:局部环境变量注入

请再次打开以管理员身份运行的 CMD,然后严格按照顺序执行以下命令:

1. 在 C 盘根目录强行创建一个名为 TempX 的新临时文件夹:

复制代码
mkdir C:\TempX

2. 将当前 CMD 窗口的临时环境变量,强行劫持并指向这个新文件夹(注意:这只对当前黑框有效,安全且不会影响系统原有设置):

复制代码
set TEMP=C:\TempX
set TMP=C:\TempX

3. 将下载好的 150MB 离线独立安装包重命名为 webview.exe,并把它直接剪切到 C 盘的最外层目录下(即 C:\webview.exe)。

4. 在刚才那个注入了新变量的 CMD 窗口中,直接输入安装包的路径并回车,强行拉起安装:

复制代码
C:\webview.exe

⚠️ 如果这一步依然弹窗

通过上述命令,我们已经从物理路径上彻底更换了临时目录。如果在这个状态下,安装程序仍然 弹出"无法创建临时目录",这就绝对不再是 Windows 路径或残留文件的问题了,而是 100% 有底层的安全软件在拦截解压行为

一直到这上面这都不太行。。

然后受上面局部环境变量的启发,就想尝试一下,在盘里创了一个Temp文件夹,然后把安装包放进去,右键以管理员身份运行,就安装好了~

名字是前面大模型某一步说的重新命名了一下,本来是这个,但是应该不影响。


overover~~