在 VS Code 中尝试

可移植模式

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 版本目录中。

Linux

Linux 上,除了创建 data 文件夹外,还需要设置正确的 Electron 沙盒权限。

Chromium 在 Linux 上有一个多层沙盒模型。如果 Chromium 无法将命名空间沙盒用于第一层,它将尝试通过随应用程序二进制文件提供的辅助二进制文件 chrome-sandbox 使用 setuid 沙盒

运行以下命令设置 setuid 辅助文件的正确权限

sudo chown root <path-to-vscode>/chrome-sandbox
sudo chmod 4755 <path-to-vscode>/chrome-sandbox

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 目录仍然是系统目录,因为那里不保留任何状态。如果您也希望将 TMP 目录放在可移植目录内,可以在 data 文件夹内创建一个空的 tmp 目录。只要 tmp 目录存在,它就会用于存放 TMP 数据。