← 全部指南

Claude Desktop 一直打不开 / 反复崩溃?真正能根治的修复办法

如果 Claude 桌面版在 Windows 上老是崩、Repair 修好没几分钟又坏,那不是你装坏了,是它自身的打包 bug。这篇讲清病根,并给你一个能一次性解决的办法。

一句话:新版 Claude Desktop 的 MSIX(商店)版打包了 vk_swiftshader.dll,被 Windows 的 Code Integrity(代码完整性校验)拦截(事件 3033),导致 GPU 进程崩溃,整个程序包被标记为 NeedsRemediation,下次启动就报「This app can't open」。修复/重装只能顶几分钟。真正能根治:改用非 MSIX 的 Squirrel 版——它装在 MSIX 容器之外,签名校验管不到它。

症状表现

昨天还好好的,今天就打不开

开机后 Claude 已经自己退出;再打开报错,或者窗口根本不出现。

PowerShell 能确认

运行 Get-AppxPackage *claude* 会显示 Status : Modified, NeedsRemediation。

Repair 只能顶一会

用 Windows 修复/重装后恢复 Status : Ok,但用几分钟又变回崩溃状态。

弹了个应用内验证码后就崩了

有人反馈是在应用里弹出 Cloudflare 验证码(captcha)时崩的——那是表象不是病根(下面细说)。

到底发生了什么

新版 Claude Desktop 的 MSIX 版(1.24012+)打包了 vk_swiftshader.dll——这是 Chromium 在 GPU 挂掉时用的软件渲染兜底。在开启了 Code Integrity 的机器上,从 MSIX 容器里加载这个 DLL 会被拦:

Code Integrity 事件 3033:...\app\vk_swiftshader.dll "did not meet the Microsoft signing level requirements."

连锁反应

  1. 1. GPU 进程回退到 swiftshader这个 DLL 被拦,GPU 进程崩溃(退出码 0x060C201E)。
  2. 2. Windows 标记整个包整个签名包被标记为 Modified、NeedsRemediation。
  3. 3. 下次启动失败启动报 0x3CFC("Cannot create the process… try reinstalling")。
所以它基本上每次会话都会自损坏。Repair 只是把时钟拨回去,并没有移除触发原因。

「弹验证码 / 在应用里点开链接那一下就崩了」

有些人注意到崩溃总对上某个特定时刻:应用内弹出 Cloudflare 验证码,或者点了个在内置浏览器(Browser 窗格 / 预览)里打开的链接。它们其实都不是真正的元凶,值得把话说准一点。整个应用本来就是个一直在持续绘制的 Electron 窗口,普通渲染并不是压垮它的原因。真正压垮它的是 GPU 子进程被要求去做一件会触到「软件 Vulkan 兜底」的活儿——而这个触发条件比「一个用 WebGPU 的页面」要更宽。只要在 Browser 窗格里打开任何页面,窗格就会对它截一张图(Chromium 的 capturePage),而截图需要 GPU 上下文。所以一个完全不用 WebGL/WebGPU 的纯静态页面,照样能把它搞崩;Cloudflare 挑战页(或任何用到 WebGPU 的页面)只是让它崩得更快、更稳而已。

一旦 GPU 子进程需要走这条路,它就会去加载程序包自带的 app\vk_swiftshader.dll——也就是软件版 Vulkan ICD。这个子进程跑在 Code Integrity Guard(只允许微软签名)之下,而这个 DLL 是 Anthropic 签的,过不了校验(事件 3033,STATUS_INVALID_IMAGE_HASH),GPU 进程随之崩溃。Chromium 会重试 5 次拉起 GPU 进程,全部失败,然后干脆把整个应用一起带走(「GPU process isn't usable. Goodbye.」)。又因为被拦的 DLL 位于一个 WindowsApps 程序包内、而它的完整性目录加载不了(事件 3010——发布出来的 MSIX 里其实缺了 AppxMetadata\CodeIntegrity.cat 这个文件),Windows 就把整个包标记为 Modified、NeedsRemediation。

这正是 Anthropic 官方 bug 报告(anthropics/claude-code#88323)里带完整日志记录的机制,而且在那个帖子里被多人独立复现——覆盖 NVIDIA、AMD、Intel 集显、甚至 Windows ARM64,侧载版和官方下载版都中招。有两个细节特别值得一提:同一台机器上的真 Google Chrome 也会撞上一模一样的 3033 拦截(拦它自己的 vk_swiftshader.dll),但 Chrome 若无其事——因为 Chrome 不是打包应用,没有「程序包状态」可被污染,这证明这个拦截只在 MSIX/CIG 语境下才致命。另外,关掉硬件加速根本没用:vk_swiftshader 本身就是软件渲染器,关掉 GPU 只会把 Chromium 往那个被拦的 DLL 上赶,而不是避开它。表面上触发路径各不相同,病根都是同一个——下面那个修复办法照样管用。

谁会中招

不是所有人,但只要你的 Windows 强制开启了 Code Integrity 就基本必中(安全加固 / 打开了「内存完整性 HVCI」、某些企业策略或虚拟显示环境)。它跟具体的 GPU 或驱动无关:出问题的那条路径根本走不到厂商驱动,全新驱动和好几年前的老驱动都复现过,独显、集显、乃至 ARM64 一样中招。看上去更像是 Electron 版本回归(大约在 1.28929 → 1.30096 那几个版本冒出来的),而不是硬件的锅。(OpenAI 的 Codex 桌面版也是完全同类的 bug。)

真正能根治的办法

别再用 MSIX(商店)版了。改用 Squirrel 版——它装到 %LOCALAPPDATA%\AnthropicClaude,在 MSIX 容器之外,所以「Microsoft 签名级别」的强制校验管不到它的 DLL。同一个 Claude、同一版本家族,从此不再自损坏。

操作步骤(Windows)

  1. 1. 拿一个 Squirrel 包(.nupkg)https://downloads.claude.ai/releases/win32/x64/AnthropicClaude-<版本>-full.nupkg —— 该目录下的 RELEASES 文件列出了当前版本号。
  2. 2. 解压 lib/net45/把里面内容解压到 %LOCALAPPDATA%\AnthropicClaude\app-<版本>\
  3. 3. 运行 claude.exe从这里运行,并创建桌面 / 开始菜单快捷方式。
  4. 4. 锁定版本为了防止它自动更新回坏掉的 MSIX 版,往 hosts 文件加一行:0.0.0.0 downloads.claude.ai(以后想更新再删掉这行)。
这样之后,claude.exe 从普通文件夹运行,swiftshader DLL 加载不再被 3033 拦截,程序包再也不会进入 NeedsRemediation,每次都能正常启动。

不想手动弄?

有一个 PowerShell 脚本把整套流程都封装好了(下载正确的 Squirrel 版、解压、建快捷方式,可选地卸掉坏 MSIX 并锁版本):https://gist.github.com/KehuiPang/0a678ac866ed4b9b883e9a30f4b63372 —— MIT 协议、无担保,不会碰你的 Claude 数据和登录。

常见问题

为什么 Claude Desktop 只是有时候打不开?

这跟 Code Integrity 有关。在强制开启它的机器上(安全加固、打开了 HVCI / 内存完整性、某些企业策略或虚拟显示环境),自带的 vk_swiftshader.dll 会被拦,从而损坏程序包。这跟你的 GPU 或驱动无关——出问题的那条路径根本走不到厂商驱动,新旧驱动、集显独显、乃至 ARM64 都复现过。没强制开启 Code Integrity 的机器上,Claude 就正常。

重装 Claude 桌面版能永久修好吗?

不能。修复或重装只能顶几分钟,然后又会自损坏,因为触发原因(被拦的 DLL)还在。必须从 MSIX 版迁走才行。

换成 Squirrel 版安全吗?

安全——就是同一个 Claude,只是装在 MSIX 沙箱之外,不会碰你的数据和登录。随时可以重装商店版还原回去。

别的 AI 桌面应用也有这个 bug 吗?

有。OpenAI 的 Codex 桌面版用的是同样的 Electron + MSIX + 内置 swiftshader 组合,撞的是同一类 bug。

换完之后用 Google 登录,Claude 一直卡在登录页,怎么办?

这是因为 claude:// 协议没有被注册。用 Google 登录时,浏览器会通过 claude://... 回调把结果交回给 Claude;如果没有程序接管这个协议,回调就无处可去,应用便一直停在登录页。改用「邮箱 + 验证码」登录能成,是因为那条路不走这个深链接。彻底解决办法是把 claude:// 协议注册到你解压出来的 Claude.exe(本文的 PowerShell 脚本会自动做这一步),之后 Google 登录就能正常跳回应用。

换成 Squirrel 版后聊天记录像被清空了,是丢了吗?

没丢,什么都没被删。MSIX 版把数据存在它自己的沙箱包目录里,而 Squirrel 版读的是 %APPDATA%\Claude,所以新版暂时看不到旧数据而已。把旧的聊天/会话数据复制过去,记录就会回来(脚本的 -MigrateData 选项会帮你自动迁移)。

受够了桌面 AI 应用自己把自己搞崩、还把你锁在门外?无为是一个免费、开源的 AI Agent,在你自己的机器上本地运行——任接模型、掌控自己的工作流,没有莫名其妙的区域标记,也不会装完就自损坏。

Windows · macOS · Linux — 免费,无需登录

一个免费、开源、跑在本地的 AI Agent。你说一句话,它就帮你读写文件、改代码、跑命令,想接哪个大模型都行,代码和数据始终留在你自己电脑上。

一念既出,万事自成 · One intention. Everything done. · © 2026 无为 Wuwei