可移植模式
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
在 Windows 和 Linux 上,可以通过将 data
文件夹复制到更新版本的 VS Code 中来更新 VS Code。
在 macOS 上,自动更新应该像往常一样工作,无需额外操作。
迁移到可移植模式
您也可以将现有安装迁移到可移植模式。
Windows, Linux
- 下载适用于您平台的 VS Code(或 VS Code Insiders)ZIP 分发版本。
- 如上所述创建
data
文件夹。 - 将用户数据目录
Code
复制到data
并将其重命名为user-data
- Windows
%APPDATA%\Code
- Linux
$HOME/.config/Code
- Windows
- 将扩展目录复制到
data
- Windows
%USERPROFILE%\.vscode\extensions
- Linux
~/.vscode/extensions
- Windows
例如,这是在 Windows 上的预期结果
|- VSCode-win32-x64-1.84.2
| |- Code.exe (or code executable)
| |- data
| | |- user-data
| | | |- ...
| | |- extensions
| | | |- ...
| |- ...
macOS
- 下载适用于 macOS 的 VS Code(或 VS Code Insiders)。
- 如上所述创建
code-portable-data
文件夹。 - 将用户数据目录
Code
复制到code-portable-data
并将其重命名为user-data
$HOME/Library/Application Support/Code
- 将扩展目录复制到
code-portable-data
~/.vscode/extensions
TMP 目录
默认情况下,即使在可移植模式下,默认的 TMP
目录仍然是系统目录,因为那里不保留任何状态。如果您也希望将 TMP 目录放在可移植目录内,可以在 data
文件夹内创建一个空的 tmp
目录。只要 tmp
目录存在,它就会用于存放 TMP 数据。