VSenv - VS Code 离线实例管理器

目录

简介

VSenv 是一个完全免费开源的 VS Code 离线实例管理器,允许您创建、启动、停止和删除独立的 VS Code 实例。每个实例拥有独立的用户数据和扩展目录,实现完全隔离的开发环境。

注意:本软件以 AGPLv3.0 协议开源,由 dhjs0000 开发。如果您购买了此软件,那么您被骗了!

主要特性

安装与配置

系统要求

快速开始

  1. 下载 VSenv 可执行文件
  2. 创建第一个实例:
    vsenv create myenv
  3. 将 VS Code 离线包解压到提示的目录
  4. 启动实例:
    vsenv start myenv

命令参考

基本命令

命令 描述 示例
create <实例名> [路径] 创建新的 VS Code 实例 vsenv create work
start <实例名> [选项] 启动指定的实例 vsenv start work
stop <实例名> 停止指定的实例 vsenv stop work
remove <实例名> 删除指定的实例 vsenv remove work
list 列出所有实例 vsenv list

协议管理

命令 描述 示例
regist <实例名> 将 vscode:// 协议重定向到此实例 vsenv regist work
regist-guard <实例名> 守护 vscode:// 协议不被篡改 vsenv regist-guard work
logoff 恢复默认的 vscode:// 协议处理程序 vsenv logoff
rest <路径> 手动重建 vscode:// 协议 vsenv rest "C:\Program Files\VS Code\Code.exe"

扩展管理

命令 描述 示例
extension <实例名> <扩展ID> 安装单个扩展 vsenv extension work ms-python.python
extension import <实例名> <列表文件> 批量安装扩展 vsenv extension import work extensions.txt
extension list <实例名> 列出已安装的扩展 vsenv extension list work

导入/导出

命令 描述 示例
export <实例名> <导出路径> 导出实例为 .vsenv 文件 vsenv export work backup.vsenv
import <配置文件> [新实例名] 导入实例 vsenv import backup.vsenv restored

全局选项

启动选项

使用示例

创建和启动实例

# 创建名为 "work" 的实例
vsenv create work --lang cn

# 启动实例(基本)
vsenv start work

# 启动实例(带网络隔离)
vsenv start work --host --mac --proxy http://proxy.internal:3128

# 启动实例(带硬件指纹随机化)
vsenv start work --fake-hw

# 启动实例(在 Windows Sandbox 中)
vsenv start work --wsb

扩展管理

# 安装中文语言包
vsenv extension work

# 安装 Python 扩展
vsenv extension work ms-python.python

# 批量安装扩展
vsenv extension import work extensions.txt

# 列出已安装的扩展
vsenv extension list work

协议管理

# 将 vscode:// 协议重定向到 work 实例
vsenv regist work

# 守护协议不被篡改
vsenv regist-guard work

# 恢复默认协议处理程序
vsenv logoff

# 手动重建协议
vsenv rest "C:\Program Files\VS Code\Code.exe"

高级功能

隔离方案

VSenv 提供多种隔离方案,按隔离程度从低到高:

  1. 基本隔离 - 仅分离用户数据和扩展目录
  2. 沙盒隔离 - 在受限的 Logon-Session 中运行
  3. AppContainer 隔离 - 使用 Windows AppContainer 技术
  4. Windows Sandbox - 在独立的虚拟机中运行

硬件指纹随机化

启用 --fake-hw 选项后,VSenv 会随机化以下硬件信息:

警告:硬件指纹随机化仅在当前实例中生效,不会影响系统实际硬件信息。

网络隔离

VSenv 提供以下网络隔离选项:

扩展管理

查找扩展 ID

要安装扩展,您需要知道其扩展 ID。查找方法:

  1. 访问 VS Code 市场
  2. 搜索您想要的扩展
  3. 在扩展页面找到 "Unique Identifier" 或从 URL 中获取

例如,Python 扩展的 URL 是:https://marketplace.visualstudio.com/items?itemName=ms-python.python,其扩展 ID 就是 ms-python.python

批量安装扩展

创建文本文件,每行一个扩展 ID,支持注释(以 # 开头):

# 开发工具
ms-python.python
ms-vscode.cpptools
dbaeumer.vscode-eslint

# 主题
PKief.material-icon-theme

然后使用以下命令批量安装:

vsenv extension import work extensions.txt

导入/导出

导出实例

将实例打包为 .vsenv 文件,包含:

vsenv export work backup.vsenv

导入实例

从 .vsenv 文件恢复实例:

vsenv import backup.vsenv restored_work

如果不指定新实例名,将使用原始名称。

提示:导出的 .vsenv 文件可以在其他计算机上导入,实现环境的快速迁移。

常见问题

启动失败

问题:启动实例时提示 "Code.exe not found"

解决:确保已将 VS Code 离线包解压到实例目录的 vscode 子目录中。

协议劫持不生效

问题:注册协议后,vscode:// 链接仍打开默认 VS Code

解决:

  1. 尝试使用 vsenv logoff 恢复默认设置
  2. 使用 vsenv rest 手动重建协议
  3. 检查是否有安全软件阻止注册表修改

扩展安装失败

问题:安装扩展时提示 "VS Code CLI not found"

解决:确保实例目录中存在 vscode\bin\code.cmd 文件。

Windows Sandbox 无法启动

问题:使用 --wsb 选项时启动失败

解决:

管理员权限问题

问题:使用 --host--mac 选项时提示需要管理员权限

解决:以管理员身份运行命令提示符或 PowerShell,然后执行命令。

获取帮助

如果您遇到问题或有建议,请通过以下方式获取帮助:

记住:VSenv 是完全免费开源的软件,由社区驱动开发。欢迎贡献代码和文档!