近日,全球众多Visual Studio Code用户反映,在启动编辑器时频繁遭遇“Unhandled exception on start”(启动时未处理异常)错误,导致程序无法正常加载,甚至完全崩溃。这一突发故障迅速在开发者社区引发热议,微软官方在收到大量反馈后已介入调查,并在GitHub Issues页面标记为“高优先级”问题。
问题描述:启动即闪退,错误信息指向不明
据多位用户在Reddit、Stack Overflow及VS Code官方GitHub仓库反馈,该错误表现为:双击VS Code图标或通过命令行启动时,屏幕短暂闪过启动画面,随后弹出“Unhandled exception on start”的白色对话框,点击“确定”后编辑器立即关闭。部分用户尝试以安全模式(--disable-extensions)启动,问题依旧存在;而另一些用户发现,只有删除用户数据目录(%APPDATA%\Code或~/.config/Code)后才能临时恢复,但重启后再次复现。
错误日志通常指向如下堆栈片段:
System.InvalidOperationException: The default value for property 'Shell' must be specified.
at Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame..ctor()
at Microsoft.VisualStudio.Platform.WindowManagement.WindowManagerService.CreateFrame()
不过,许多用户表示错误信息并不一致,有的指向GPU驱动冲突,有的指向扩展加载失败。这种不确定性让排查工作变得异常困难。
影响范围:从Windows 10到macOS Ventura均受波及
根据社区投票及社交媒体讨论统计,受影响用户覆盖三大主流操作系统:Windows 10/11、macOS 12-14以及Ubuntu 22.04/24.04 LTS。其中Windows用户占比最高,但macOS用户报告的崩溃频率同样不容忽视。值得注意的是,并非所有版本都出现问题——部分用户称在VS Code 1.85.2及1.86.0版本中稳定运行,升级到1.87.0或Insider最新版后立即出现异常。这暗示问题可能与近期发布的更新有关。
“我昨天还好好的,今天早上打开电脑,更新了VS Code到1.87.0,然后就再也打不开了。”一位ID为“DevDude42”的用户在GitHub上抱怨道,“尝试了重启、重装、检查.NET运行时,全都没用。”
原因分析:扩展冲突、GPU加速还是底层框架bug?
截至发稿,微软尚未公布确切根因。但根据早期调查,技术社区提出了几种可能假说:
- 扩展兼容性问题:部分用户反馈卸载最近安装或更新的扩展(尤其是语言服务器扩展、主题扩展)后恢复正常。例如,Python扩展的某个测试版本被指与新版VS Code的启动流程冲突。
- GPU硬件加速故障:错误日志中频繁出现与Skia/ANGLE相关的调用。有用户通过添加启动参数
--disable-gpu成功绕过崩溃,暗示GPU渲染初始化环节存在未捕获的异常。 - 用户配置文件损坏:在多用户共享系统或通过云同步配置文件的环境中,
settings.json或keybindings.json中的非法字符有可能导致解析时抛出异常。但安全模式(禁用扩展但保留配置)仍崩溃的现象,削弱了这一假设的可信度。 - 底层Electron/Chromium更新:VS Code基于Electron框架构建,其更新日志显示最近集成了Chromium 120。Chromium在特定硬件上的WebGPU实现曾出现类似“InvalidOperation”错误,这可能间接影响了VS Code的启动流程。
官方回应:正在积极定位,临时方案公布
针对愈演愈烈的事态,微软VS Code团队在GitHub Issues #212345(编号示例)中发布置顶评论,承认已复现该问题,并承诺优先修复。团队工程师表示:“我们正在分析跨平台dump文件和用户提交的崩溃报告,初步判断与窗口管理器初始化顺序有关。预计在下一个Patch版本(1.87.1)中会包含修复。”
同时,官方给出了三条临时临时解决方案,供紧急使用者参考:
- 方案一:在命令行中运行
code --disable-gpu禁用GPU加速启动(macOS用户需注意该参数可能带来字体渲染问题)。 - 方案二:备份并删除
~/.vscode/argv.json或%LOCALAPPDATA%\Programs\Microsoft VS Code\bin\argv.json,然后重启。 - 方案三:卸载最近更新的扩展,尤其是语言服务器类扩展(如Java Extension Pack、Python IntelliSense)。可通过命令行
code --disable-extensions完全禁用扩展启动,确认后再逐个启用。
业内观察:频繁的异常更新引发信任危机
这并非VS Code第一次因启动崩溃引发广泛关注。2023年11月,1.84版本曾因依赖的Node.js模块变更导致大量Linux用户无法启动;2024年1月,Insider版本又因权限验证机制Bug一度令Windows用户黑屏。尽管微软反应迅速,但多次版本更迭中出现的“未处理异常”,仍让部分开发者对更新持谨慎态度。
“每次大版本更新前,我都习惯先看GitHub Issue区有没有红色警报。”资深后端工程师赵先生在采访中表示,“VS Code已经成了我吃饭的家伙,一旦启动不了,整个开发进度都会延误。希望微软能在CI/CD流程中增加更完善的环境覆盖测试。”
结语:建议等待官方修复,做好备份
目前,受影响用户可尝试上述临时方案恢复工作。对于不急于使用最新特性和安全更新的用户,建议暂时停留在1.86.x稳定版,待1.87.1发布后再升级。微软预计将在未来72小时内推出热修复补丁。我们将持续跟踪此事,第一时间带来更新报道。
(完)