⚠️ 项目状态声明: 该项目已进入 Only-fix 状态,仅接受bug修复,不再开发新功能。感谢所有用户的支持与贡献!
VSenv 是一个专业的 VS Code 离线实例管理器,允许用户创建、管理和运行完全独立的 VS Code 实例。每个实例拥有独立的用户数据、扩展目录和配置环境,特别适合以下场景:
- 🔒 隐私保护:防止扩展和配置数据交叉污染
- 🏢 企业环境:为不同项目创建隔离的开发环境
- 🔬 测试验证:测试扩展和配置而不影响主环境
- 🌐 网络隔离:支持代理和网络隔离配置
- 📦 离线部署:完美支持离线环境下的扩展管理
- 文件系统隔离:每个实例独立的 data 和 extensions 目录
- 注册表隔离:独立的协议注册和硬件指纹配置
- 网络隔离:支持代理配置和虚拟网卡模拟
- 进程隔离:可选沙箱模式运行
- 硬件指纹伪装:随机化 CPUID、磁盘序列号和 MAC 地址
- 协议重定向:自定义 vscode:// 协议处理
- 批量扩展管理:支持扩展列表导入导出
- 实例迁移:完整的实例导出导入功能
- 多语言支持:中文和英文界面
- 操作系统: Windows 10 或更高版本
- 架构: x64 (64位)
- 内存: 4GB RAM
- 存储: 至少 2GB 可用空间
- 操作系统: Windows 11 22H2 或更高
- 内存: 8GB RAM 或更多
- 存储: SSD 硬盘,10GB 可用空间
- 权限: 管理员权限(用于高级网络功能)
- 访问 Releases 页面
- 下载最新版本的
vsenv-x.x.x-windows-amd64.zip - 解压到任意目录(如
C:\Tools\vsenv) - 将目录添加到系统 PATH 环境变量
# 克隆仓库
git clone https://github.com/dhjs0000/vsenv.git
cd vsenv
# 安装依赖
vcpkg install nlohmann-json
# 使用 Visual Studio 2019+ 编译
msbuild vsenv.sln /p:Configuration=Release打开命令提示符,运行:
vsenv --version应显示:VSenv 1.6.2 by dhjs0000 (AGPLv3.0)
# 启动交互模式选择实例
vsenv f# 创建名为 "myproject" 的实例
vsenv create myproject
# 将 VS Code 离线包解压到指定目录
# 默认路径: C:\Users\<用户名>\.vsenv\myproject\vscode# 基本启动
vsenv start myproject
# 带隐私保护的启动
vsenv start myproject --fake-hw --sandbox# 安装中文语言包
vsenv extension myproject MS-CEINTL.vscode-language-pack-zh-hans
# 列出已安装扩展
vsenv extension list myproject# 启动交互模式
vsenv f
# 在交互模式中:
# ↑↓ 键选择实例
# 回车键启动选中实例
# : 键添加启动参数
# Esc 键退出# 在默认位置创建实例
vsenv create project-alpha
# 在自定义位置创建实例
vsenv create project-beta "D:\Development\vscode-instances\beta"
# 创建实例并设置中文界面
vsenv create project-gamma --lang cn# 基本启动
vsenv start project-alpha
# 网络隔离模式
vsenv start project-alpha --host --mac --proxy http://127.0.0.1:8080
# 沙箱模式(增强安全)
vsenv start project-alpha --sandbox --fake-hw
# 中文界面启动
vsenv start project-alpha --lang cn启动选项说明:
--host: 随机化主机名(需要管理员权限)--mac: 创建虚拟网卡并随机化 MAC 地址--proxy: 设置 HTTP 代理服务器--sandbox: 在受限的 Logon-Session 中运行--fake-hw: 随机化硬件指纹
# 停止运行中的实例
vsenv stop project-alpha
# 完全删除实例(不可恢复)
vsenv remove project-alpha# 安装本地插件
vsenv plugin install -i <插件路径>
# 卸载插件
vsenv plugin remove <插件名>
# 列出已安装插件
vsenv plugin list
# 插件包管理器
vsenv pm# 安装扩展
vsenv extension project-alpha ms-python.python
# 安装中文语言包
vsenv extension project-alpha MS-CEINTL.vscode-language-pack-zh-hans# 从文件批量安装扩展
vsenv extension import project-alpha extensions.txt
# 导出已安装扩展列表
vsenv extension list project-alpha > installed_extensions.txt扩展列表文件格式(extensions.txt):
# 注释以 # 开头
ms-python.python
ms-vscode.vscode-typescript-next
bradlc.vscode-tailwindcss
# 更多扩展...# 将 vscode:// 链接重定向到指定实例
vsenv regist project-alpha
# 守护模式(防止其他程序修改协议注册)
vsenv regist-guard project-alpha
# 恢复默认的 vscode:// 处理
vsenv logoff
# 手动重建协议关联
vsenv rest "C:\Users\Username\AppData\Local\Programs\Microsoft VS Code\Code.exe"# 导出实例到压缩包
vsenv export project-alpha "D:\Backups\project-alpha.vsenv"
# 导出包含所有配置和扩展# 导入实例(保持原名称)
vsenv import "D:\Backups\project-alpha.vsenv"
# 导入并重命名实例
vsenv import "D:\Backups\project-alpha.vsenv" project-new# 列出所有实例
vsenv list
# 输出示例:
# Instance Name Path
# -----------------------------------------
# project-alpha C:\Users\user\.vsenv\project-alpha
# project-beta D:\Development\vscode-instances\beta.vsenv/
├── instance1/
│ ├── vscode/ # VS Code 程序文件
│ ├── data/ # 用户数据(配置、状态等)
│ ├── extensions/ # 扩展目录
│ └── logs/ # 日志文件
├── instance2/
│ └── ... # 另一个实例
└── otherPath.json # 自定义路径映射
HKEY_CURRENT_USER
└── Software
├── Classes
│ ├── vsenv-{instancename} # 自定义协议
│ └── vscode # 协议重定向
└── VSenv
└── {instancename}
└── Hardware # 硬件指纹配置
- 文件系统级隔离: 每个实例独立的目录结构
- 注册表级隔离: 独立的协议注册和配置
- 进程级隔离: 可选沙箱执行环境
- 网络级隔离: 代理配置和虚拟网络设备
VSenv 可以随机化以下硬件标识符:
- CPUID: 处理器标识
- Disk Serial: 磁盘序列号
- MAC Address: 网络适配器地址
- 支持 HTTP/HTTPS 代理
- 虚拟网卡 MAC 地址随机化
- 主机名随机化(管理员权限)
- 实例间完全数据隔离
- 独立的扩展生态系统
- 独立的用户配置和状态
# 运行系统自检
vsenv doctor
# 检查项目包括:
# - 主目录存在性
# - 插件目录状态
# - 注册表写入权限
# - PowerShell可用性
# - 插件加载状态
# - 实例扫描结果# 启用调试模式
vsenv -debug <子命令>
# 可用子命令:
# reg - 打印vscode://协议当前值
# loaded - 打印已加载插件列表
# env - 打印环境变量和路径
# crash - 故意触发崩溃(测试用)
# exception - 故意抛出异常(测试用)
# trace - 打印最后一次Windows错误
# dll <插件名> - 打印DLL导出函数
# token - 打印当前进程Token信息
# proc <实例名> - 打印实例进程信息问题: 网络相关功能需要管理员权限 解决: 以管理员身份运行命令提示符
问题: vscode:// 链接没有正确跳转 解决:
vsenv logoff # 先恢复默认
vsenv regist <实例名> # 重新注册问题: 扩展安装过程中出现错误 解决:
- 检查网络连接
- 验证扩展 ID 是否正确
- 尝试使用代理:
--proxy <代理地址>
实例日志位于:实例目录\logs\vsenv.log
设置环境变量开启详细日志:
set VSENV_DEBUG=1
vsenv start project-alpha
⚠️ 重要提醒: 由于项目已进入 Only-fix 状态,目前仅接受bug修复相关的贡献。新功能开发将不再被合并。
对于bug修复的贡献,请阅读以下指南:
- Fork 本仓库
- 克隆你的 fork:
git clone https://github.com/your-username/vsenv.git
- 创建功能分支:
git checkout -b feature/amazing-feature
- 提交更改:
git commit -m 'Add some amazing feature' - 推送到分支:
git push origin feature/amazing-feature
- 创建 Pull Request
- 遵循现有的代码风格
- 添加适当的注释
- 更新相关文档
- 测试你的更改
请在 GitHub Issues 中报告 bug,包括:
- 详细的问题描述
- 复现步骤
- 系统环境信息
- 错误日志(如果有)
⚠️ 注意: 目前仅接受bug报告,新功能请求将不会被处理。
本项目采用 AGPLv3.0 许可证开源。
VSenv - VS Code 离线实例管理器
Copyright (C) 2025 dhjs0000
本程序是自由软件:你可以根据自由软件基金会发布的GNU Affero通用公共许可证
的条款,即许可证的第3版或(您选择的)任何后来的版本重新发布它和/或修改它。
本程序是希望它有用,但没有任何担保;没有甚至没有适销性或特定用途适用性的隐含担保。
更多细节请参见GNU Affero通用公共许可证。
你应该已经收到了一份GNU Affero通用公共许可证的副本
如果没有,请参阅<https://www.gnu.org/licenses/>。
- 📖 详细文档: https://dhjs0000.github.io/VSenv/
- 🐛 问题反馈: GitHub Issues
- 💬 讨论区: GitHub Discussions
- ⭐ 给个星星: 如果这个项目对你有帮助,请给个 ⭐
温馨提示: 本软件完全免费开源,如果你付费购买了这个软件,那么你被骗了!请通过官方渠道获取。
最后更新: 2025年10月
维护者: dhjs0000
