VSCode加载工作区耗时久且非管理员启动报错求助
问题现象
打开仅包含main.go的文件夹时,VSCode持续显示“Setting up workspace: Loading packages...”,非管理员启动会报错:
Error loading workspace: 1 modules have errors: nuxt-fetch-bug:pattern nuxt-fetch-bug/...: open C:\Users\username\AppData\Local\ElevatedDiagnostics: Access is denied.
期间无法保存文件、编写代码,也没有自动补全功能。
解决步骤
清理Go模块缓存
打开终端执行命令,清除本地残留的错误模块信息:go clean -modcache删除项目目录冗余配置文件
检查项目文件夹,删除自动生成的go.mod、go.sum文件,以及.vscode目录(如果存在)。单文件Go项目不需要模块配置,删除后gopls会切换到单文件模式,避免不必要的目录扫描。限制gopls工作区扫描范围
在VSCode设置中搜索gopls: workspace folders,将当前项目文件夹单独添加为工作区目录。或者在项目根目录创建.vscode/settings.json,添加以下配置:{ "gopls": { "workspaceFolders": ["./"] } }强制gopls仅关注当前项目目录,避免扫描系统敏感目录。
修复目录权限(可选)
如果上述方法无效,右键C:\Users\username\AppData\Local\ElevatedDiagnostics文件夹,进入「属性」→「安全」→「编辑」,给当前用户添加「读取&执行」权限并保存。注意:此目录为系统诊断目录,优先使用前三种方法解决。
错误原因说明
报错中出现的nuxt-fetch-bug是之前其他项目残留的模块缓存信息,gopls在扫描工作区时误加载了旧缓存,导致错误关联到当前Go项目,同时触发了系统目录的权限问题。
内容的提问来源于stack exchange,提问作者Andrew Rusinas

