便携模式

Visual Studio Code 支持 便携模式。此模式使得由 VS Code 创建和维护的所有数据都存储在它附近,因此可以在不同环境之间移动。

此模式还提供了一种设置VS Code扩展安装文件夹位置的方法,对于防止扩展安装在Windows AppData文件夹中的企业环境非常有用。

便携模式在Windows的ZIP下载、Linux的TAR.GZ下载以及macOS的常规应用程序下载中均受支持。请参阅下载页面以找到适合您平台的正确.zip / .tar.gz文件。

注意: 不要尝试在从Windows用户或系统安装程序安装的版本上配置便携模式。便携模式仅在Windows ZIP(.zip)存档中受支持。同时请注意,Windows ZIP存档不支持自动更新。

启用便携模式

Windows, Linux

解压VS Code下载文件后,在VS Code的文件夹内创建一个data文件夹:

|- VSCode-win32-x64-1.84.2
|   |- Code.exe (or code executable)
|   |- data
|   |- bin
|   |  |- code
|   |  |- ...
|   |- ...

从那时起,data 文件夹将用于包含所有 VS Code 数据,包括会话状态、首选项、扩展等。

注意: data 文件夹将覆盖 --user-data-dir--extensions-dir 命令行 选项。

data 文件夹可以移动到其他 VS Code 安装中。这对于更新便携版 VS Code 版本非常有用,在这种情况下,您可以将 data 文件夹移动到新提取的 VS Code 版本中。

macOS

macOS上,你需要将数据文件夹放置在应用程序本身的同级目录中。由于文件夹将与应用程序并列,你需要特别命名它,以便VS Code能够找到它。默认的文件夹名称是code-portable-data

|- Visual Studio Code.app
|- code-portable-data

如果您的应用程序处于隔离状态,便携模式将无法工作,如果您刚刚下载了VS Code,这是默认情况。如果便携模式似乎不起作用,请确保移除隔离属性:

xattr -dr com.apple.quarantine Visual\ Studio\ Code.app

注意: 在Insiders上,文件夹应命名为 code-insiders-portable-data

更新便携版VS Code

WindowsLinux上,您可以通过将data文件夹复制到较新版本的VS Code来更新VS Code。

macOS上,自动更新应该像往常一样工作,不需要额外的工作。

迁移到便携模式

您还可以将现有安装迁移到便携模式。

Windows, Linux

  1. 下载适用于您平台的VS Code(或VS Code Insiders)ZIP 发行版。
  2. 如上所述创建data文件夹。
  3. 将用户数据目录 Code 复制到 data 并将其重命名为 user-data
    • Windows %APPDATA%\Code
    • Linux $HOME/.config/Code
  4. 将扩展目录复制到 data
    • Windows %USERPROFILE%\.vscode\extensions
    • Linux ~/.vscode/extensions

例如,这是在Windows上的期望结果:

|- VSCode-win32-x64-1.84.2
|   |- Code.exe (or code executable)
|   |- data
|   |   |- user-data
|   |   |   |- ...
|   |   |- extensions
|   |   |   |- ...
|   |- ...

macOS

  1. 下载适用于macOS的VS Code(或VS Code Insiders)。
  2. 如上所述创建code-portable-data文件夹。
  3. 将用户数据目录 Code 复制到 code-portable-data 并将其重命名为 user-data
    • $HOME/Library/Application Support/Code
  4. 将扩展目录复制到 code-portable-data
    • ~/.vscode/extensions

临时目录

默认情况下,即使在便携模式下,默认的TMP目录仍然是系统目录,因为那里没有保存任何状态。如果你希望将TMP目录也放在便携目录中,你可以在data文件夹内创建一个空的tmp目录。只要存在tmp目录,它将被用于存储TMP数据。