VSCode便携版本身不写注册表:它不调用安装器、不注册COM组件、不写HKEY_CURRENT_USER\Software\Microsoft\VS Code或HKEY_LOCAL_MACHINE任何键;右键菜单或code命令存在,是用户曾手动执行过注册操作所致。

VSCode便携版根本不会写注册表
便携版 VSCode(即直接解压 code-portable.zip 启动的版本)设计上就规避系统级写入:它不调用安装器、不注册 COM 组件、不写 HKEY_CURRENT_USER\Software\Microsoft\VS Code,也不往 HKEY_LOCAL_MACHINE 写任何键。你打开 regedit 搜索 “VSCode” 或 “VisualStudioCode”,大概率什么都找不到——这不是漏删,是压根没产生。
但右键菜单或 code 命令仍存在?那是手动注册的
如果你在便携版运行后发现右键有 “Open with Code”,或终端能敲 code 启动,说明你曾主动执行过以下任一操作:
- 在 VSCode 设置里勾选了「Shell Command: Install 'code' command in PATH」(哪怕只点过一次)
- 手动双击运行过
bin\code.cmd /register(Windows) - 自己导入过
add-vscode-icon.reg类注册表文件
这些行为会往 HKEY_CLASSES_ROOT\Directory\shell\OpenWithCode 或 HKEY_CURRENT_USER\Software\Classes\AppUserModelId\Microsoft.VisualStudioCode 写项——它们不属于便携版自身逻辑,而是你“赋予”它的系统集成能力。
清理时只删明确由你触发的注册表项
别清 HKEY_CURRENT_USER\Software\Microsoft\VS Code——便携版不用它,这个键如果存在,一定是你之前装过正式版残留的;也别碰 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VS Code,便携版从不触碰 HKEY_LOCAL_MACHINE。
真正要查的是:
从 grok-build 125万行 Rust 源码深读后移植的 5 个独立 Python 模块:上下文压缩引擎、推理重试退避、崩溃恢复、钩子运行时、扩展注册表。每个模块可独立 import 或 CLI 调用。
-
HKEY_CLASSES_ROOT\Directory\shell\OpenWithCode(及其command子项) HKEY_CLASSES_ROOT\*\shell\OpenWithCode-
HKEY_CURRENT_USER\Software\Classes\AppUserModelId\Microsoft.VisualStudioCode(影响任务栏固定图标)
逐个展开,看 (默认) 值或 command 下的路径是否指向你当前已删除的便携版目录(如 C:\tools\vscode-portable\bin\code.cmd)。路径失效的项,就右键删除整项。
删完必须重启资源管理器才生效
注册表改完,右键菜单和 code 命令不会立刻消失——Windows 资源管理器缓存了 Shell 扩展。
打开任务管理器 → 找到 explorer.exe → 右键「重新启动」。这一步跳过,你会误以为“没删干净”。
另外,如果之前把便携版路径加进了系统 PATH 环境变量,记得去「系统属性 → 高级 → 环境变量」里手动删掉对应条目;否则 code --version 仍会返回旧版本号。










