Rust-Analyzer扩展包加载工作区失败 无法读取存在的Cargo.toml是何原因?

问题排查与修复方案
不用反复重装Rust或者扩展,90%以上的这类问题都不是安装包损坏导致的,按下面的顺序排查就行:
- 检查编辑器打开的目录层级:绝大多数报错都是因为没有直接打开Cargo.toml所在的项目根目录。比如你的Cargo.toml路径是
D:\rust\demo\Cargo.toml,结果编辑器打开的是D:\rust文件夹,rust-analyzer找不到对应路径下的清单文件就会抛错。直接关闭当前工作区,选择「打开文件夹」选中Cargo.toml所在的demo目录,重启扩展即可。 - 验证cargo本身的识别能力:终端cd到Cargo.toml所在目录,直接执行
cargo check。如果命令行执行报错,说明是文件本身、权限或者路径的问题:- 检查文件名大小写:Linux/macOS文件系统大小写敏感,确认文件名是严格的
Cargo.toml,不要写成cargo.toml、Cargo.TOML - 检查文件占用/权限:Windows下确认文件没有被同步盘、杀毒软件锁定,没有勾选只读属性;Linux/macOS下执行
chmod 644 Cargo.toml给当前用户分配读写权限 - 检查文件编码:确认Cargo.toml是UTF-8编码,不要存为带BOM的GBK/UTF-16格式,否则cargo和rust-analyzer都无法正常解析
- 检查文件名大小写:Linux/macOS文件系统大小写敏感,确认文件名是严格的
- 如果
cargo check能正常运行,说明是扩展配置或缓存问题:- 打开编辑器设置搜索
rust-analyzer.linkedProjects,删除里面残留的无效路径,手动添加当前项目Cargo.toml的绝对路径 - 关闭编辑器,删除项目目录下的
target文件夹,以及编辑器配置目录(.vscode/.idea)里的rust-analyzer缓存文件,重新打开项目根目录即可。
- 打开编辑器设置搜索
内容的提问来源于stack exchange,提问作者Kim_Wang0906
相关产品推荐
相关产品推荐

