当没有 Internet 连接时,如何将扩展安装到作为 Remote-SSH 远程端的 VS 代码服务器中?

How do you install an extension into the VS Code Server that's the remote end of Remote-SSH when there is no Internet connection?

我在没有直接互联网连接的网络中工作。

我的桌面 PC 上有 VS Code,我使用“Remote - SSH”扩展(版本 0.55)在 Linux VM 上进行开发。效果很好。

有时我需要将其他扩展安装到桌面 VS Code(使用 code --install-extension <path-to-vsix> 很容易完成)以及“远程 - SSH”的 Linux 端"服务器。

我的问题是“在这种情况下,如何将扩展程序正确安装到 Linux 服务器中?”

我将描述我所做的工作,有时部分工作,但我已经使用这个过程来升级扩展和丢失的功能(如输出着色),所以一定有一些遗漏。我想知道缺少的步骤。

  1. 从联网的计算机下载扩展程序。 marketplace.visualstudio.com/vscode 的扩展页面上有一个“下载扩展”link。将它(无论如何)复制到您的 Linux 开发主机上。
  2. 将 VSIX 文件复制到 ~/.vscode-server/data/CachedExtensionVSIXs/ 并通过删除“.vsix”扩展名来重命名文件。
  3. 有时扩展在此阶段变得可以安装。我不确定这种方法起作用的情况和有时不起作用的情况之间有什么区别。至少值得一试——转到 VS Code,连接到您的远程主机,查看“扩展”面板,如果您可以从那里安装它,那对您有好处。如果它不起作用,请关闭与远程主机的连接。
  4. 假设上一步失败,您需要解压VSIX并将其复制到位。以下代码以cmake-tools扩展为例
cd /tmp
mkdir cmaketools && cd cmaketools
7z x -tzip ~/.vscode-server/data/CachedExtensionVSIXs/ms-vscode.cmake-tools-1.4.2
cd ~/.vscode-server/extensions/
mv /tmp/cmaketools/extension ms-vscode.cmake-tools-1.4.2
cd ms-vscode.cmake-tools-1.4.2/
cp /tmp/cmaketools/extension.vsixmanifest .vsixmanifest

您可以从 Marketplace 下载扩展程序并将扩展程序vsix 文件上传到远程。

在远程 VSC 中,使用扩展栏顶部菜单中的 Install from VSIX... 命令。