孤灯从流
的博客
ShuninYu 's Blog

页内导航

Tags

#经验
#Github
#VSCode
#GithubDesktop

GithubDesktop找不到VSCode?

2024-1-10 - 23:38 | 最后更新:2024-4-14

因为一些特殊原因(正文会详细说明)导致我有段时间没有更新网站和Blog。今天更新网站内容的时候发现GithubDesktop找不到VSCode,不能直接从软件里打开VSCode编辑项目文件。软件设置里也没有编辑器启动路径,于是简短的解密之旅开始了……

Windows11

2024-4-14 update:本节部分内容已经过时!
最近电脑彻底进入不了系统了,找人来排查了一下发现居然是cpu有问题。从始至终我都没怀疑过cpu有问题,这么小概率的事情居然让我碰上了……来排查的大哥说他干了二十年的电脑,算上我这次,一共就遇到过两个cpu有问题的……
因为cpu是买的散片,所以准备把cpu寄回给商家售后了,等问题解决了再更新吧。

一切的一切都要从换新电脑以后开始说起。

新电脑cpu是13900k,所以为了“充分发挥大小核的性能”,也为了满足我对Win11图形界面的好奇,新电脑的系统就选择了Windows11。

虽然有些奇葩的交互修改,但是一开始Win11用起来还算稳定且顺手,没有什么bug也没出什么问题,而且更加“Mac化”的图形界面也深得我心。但是在微软几个月连续强制推送各种更新之后,我的系统成功出现了各种奇葩问题,最后甚至导致系统频繁蓝屏并且出现开机进入不了桌面的情况,于是乎我被迫重装了系统。重装完后痛定思痛,我用Update Blocker锁定了Windows更新,强制系统停留在最稳定的装机时的版本。

而我当初的一个疏忽导致了一个严重的问题。我的没有写完(或者正文基本写完但是没有转换成html格式完成文章整体构建)的blog、一些作品的想法和构思、部分计划表等等,都被我放在桌面的一个文件夹里……所以重装系统以后他们全部都不复存在了(包括我的待写、待上传的blog的清单)。而我的备份是更早期的版本,没有上传的blog都还没有被备份。
这也是为什么我的blog很长时间没有更新,因为源文件都没了……

除了文档没了,我的注册表也跟着遭了殃,而这个问题就促成了这篇blog。

GithubDesktop

因为我不是专业码农,所以我的Github项目管理都是用的GithubDesktop,这个小巧的软件成了我的git平替,基本就是一个网站管理器。(详见这篇文章
因为blog原文都没了,所以我很长一段时间没有对网站进行更新,把重心放在了其他事情上。而今天久违的有更新网站的计划,我就开心的打开熟悉的GtihubDesktop,切换到要更新的网站项目,按下ctrl+shift+a用VSCode打开项目……

然而VSCode没有打开,取而代之的是一个提示窗口的弹出:

当时没有截图,所以找了张同样问题的截图来代替

在看到这个弹窗之后我马上打开GithubDesktop的设置,尝试手动设定VSCode的启动路径,然而……

GithubDesktop的设置窗口

……设置里面并没有这个功能。

一脸懵逼的我看了下Windows状态栏:

我这不是正在用VSCode吗?!而且还是重装系统后重新安装了一遍的VSCode,注册表应该没有缺失才对。

怀着疑问,我打开了Google,搜索了一下“github desktop can't find vscode”。

直截了当的搜索结果

点开这个issue后,看到反馈者遇到的是和我一样的问题,并且我和他的情况也基本一致。
而其他人给到的回复如下图:

GithubDesktop通过注册表的卸载key来定位VSCode

可能因为我本人是个外行所以不懂,难道在设置里添加一个用户手动选择/输入的软件路径就行不通?为什么是通过卸载key来定位软件位置?对于这么做的必要性和理由,我百思不得其解……但是毕竟已经给出了原理,那就开始对症下药。

按照这个回答的说法,要么是安装VSCode的时候没有生成这个注册表key,要么就是生成的和应该有的(或者GithubDesktop能识别的)key有区别。那这个uninstall key肯定是指VSCode的key,于是我就翻到了HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\
发现uninstall key是“正常”存在的。

你不就搁这呢吗?

“正常”之所以打了双引号,是因为这个正常只是表面正常。

消失的“它”

其实有经验的话应该已经想到了,虽然这个键值存在,但是它的内容肯定是有问题的,否则不可能GithubDesktop识别不出来。

{771FD6B0-FA20-440A-A002-3B3BAC16DC50}_is1的“内在”

其中有一项是InstallLocation,这一项当时指向的是C盘的AppData\Local\Programs\Microsoft VS Code。而我一眼就感觉这个位置不太对劲,因为我平时是不会把软件安在C盘的,于是我打开了这个路径:

全部内容已在此……一眼顶真,鉴定为废

接着我打开了任务管理器,通过进程定位了一下我使用的VSCode的位置,而结果就是上面注册表截图中的结果。

注意路径和上文提到的路径的区别

这就证明了注册表中的路径其实是个错误路径,通过这个路径是找不到VSCode的可执行文件的,这也导致了Github Desktop报错。至于为什么会出现错误的路径,我其实也没有什么头绪,可能是重新安装前没有卸载干净,或者其他的安装VSCode时产生的问题。
但是总而言之,把InstallLocation的路径换成正常路径之后问题就解决了。重启GithubDesktop后一切恢复正常,快捷键也能够把项目在VSCode中打开了。

题外话(Win11截图功能)

写这篇blog的时候大部分的截图是使用的Win11自带的截图功能。Win11自带截图工具虽然功能不如QQ截图那么强大全面,但是操作还是很方便的。呼出工具后框选要截取的部分,截取的部分就会自动保存到默认路径,并且复制到剪贴板。快捷键是Win+shift+s,也可以通过Print Screen键呼出,但是我建议在设置中关闭Print键呼出。因为Win11截图工具和QQ截图一样,打开后会有覆盖层,平时容易误触(尤其是在玩游戏的时候,毕竟steam截图键F12就在print旁边),而且还和Windows一直有的全屏截图键位冲突。

具体的关闭方法:打开Windows设置 → 辅助功能 → 键盘
找到屏幕键盘、访问键和打印屏幕,关闭“Use the Print screen key to open Snipping Tool”

上面也提到,Win11的截图工具会在框选完截取区域后自动保存截图文件。而这个文件的保存路径默认是在C:\Users\*用户名*\图片\屏幕截图,没错,就算你在系统设置里更改了用户默认文件存储盘,它还是会把截图存在C盘。修改这个问题也很简单,打开这个路径,对着屏幕截图文件夹右键打开属性 → 位置,然后更改文件夹位置就可以了。

图为我修改后的路径

Win11自带的截图工具应付基础的截屏功能也够用,而且不像QQ截图需要登录QQ后才能使用。把上面两个地方设置好以后可以作为其他截图方法的分支来使用。日常的截图我就会用QQ截图,并且一直把截到的图片存在固定的路径里,而blog中的图片则会使用Win11自带截图,存储的位置和QQ截图不同,来方便往blog文件夹导图。

评论区(需要科学上网)