VSCode就NM跟SB一样天天搁那儿更新,瞎JB更新,每次更新都要出一次兼容性问题,远程服务器不能连公网就上不去了,也没有显式提示,错误很明显就是在下载不了文件,用VSCode内置的scp代码根本就跟死了一样一动也不动,连个进度条都没有,就不能起码提醒一下用户到底该干啥?微软程序员是不是有病?微软程序员是不是都要转设计了,用心画UI,用脚写输出是吧?
这次的bug是我又双叒叕更新了VSCode(我就是这么贱,我服了,我是微软孝子),连接服务器的时候一开始报Setting up SSH Host IP地址: Copying VS Code Server to host with scp
,我通过这篇^1^中提到的方法试图直接将本地C:\Users\Administrator\AppData\Local\Temp中存储的文件上传到VSCode提示的位置,结果VSCode一顿操作猛如虎,最后Remote - SSH输出这玩意儿:
[19:09:00.037] [server] Checking /home/user_name/.vscode-server/cli/servers/Stable-commit_id/log.txt and /home/user_name/.vscode-server/cli/servers/Stable-commit_id/pid.txt for a running server...
[19:09:00.538] [server] Installing and setting up Visual Studio Code Server...
这台服务器不能上公网,这两个文件根本就没有新建成功。我用一台能上的服务器上了一下,发现log.txt就是日志文件,pid.txt就是pid(什么废话文学)
错误原因就是没有下载成功......反正各种文件。之所以不能直接用^1^中的方法手动上传文件是因为VSCode不讲武德,偷袭,又换了服务器文件处理路径!
不管是直接复制别的服务器的log.txt和pid.txt还是直接复制.vscode-server/cli/servers/Stable-commit_id过来都是没用的,直接跳过中间debug的过程来到最后解决问题环节吧:
方法一(我采用的方法) :设置remote.SSH.useExecServer
为false
随便打开一个能打开的环境,在工作区中搜索并取消勾选:
然后重开服务器的窗口,直接套用^1^中介绍过的方法来解决就行。(刚刚成功打开的服务器也得重开,因为这个修改是对全局有效的)
这个简单来说就是把服务器文件路径换成之前的版本。
方法二 (我没试过):来自https://github.com/microsoft/vscode-remote-release/issues/8926#issuecomment-1711090630
下载https://update.code.visualstudio.com/commit:{commit_ID}/server-linux-x64/stable
(commit_id获取方式也见^1^。如果之前折腾了半天其实也会自动新建Stable-commit_id文件,那个就是的),解压到.vscode-server/cli/servers/Stable-{commit_ID}/server
目录
下载https://update.code.visualstudio.com/commit:{commit_ID}/cli-alpine-x64/stable
,将其中的code
文件(其实就这一个文件)重命名为code-{commit_ID}
,放到.vscode-server
目录
方法三 :降低VSCode或者Remote - SSH插件版本
见参考资料吧。
本文撰写过程中参考的资料:
- [Remote-SSH Bug]: Remote-SSH 0.106.1 gets stuck downloading the server · Issue #8926 · microsoft/vscode-remote-release:这里面还有一哥们问题是服务器tar的版本没更新,但是显然这跟我的情况不一样。
- visual studio code - Remote SSH connection hangs at "Downloading vscode server step" after updating VScode to 1.82.0 version - Stack Overflow