vscode 必须打开含 tauri.conf.json 和 src-tauri 的最外层目录,并在该目录创建 workspace cargo.toml,再执行 rust analyzer: reload workspace;前端热更新失效主因是 build.devpath 与实际服务地址不一致或未启动前端;windows 下 0xc0000135 错误需安装 microsoft c++ build tools;调试需配置 compound launch.json 同时启动前后端。

VSCode 打开项目根目录才认得 Rust 后端
如果 main.rs 里全是 “unresolved import”、跳转失效、类型提示全断,不是插件没装对,而是 VSCode 没打开正确的目录。它只认 Cargo.toml 所在路径为 workspace 根,而 Tauri 项目默认的 src-tauri/Cargo.toml 不会被自动发现。
必须用 VSCode 打开**含 tauri.conf.json 和 src-tauri 的最外层文件夹**,不能只打开 src-tauri 子目录。然后在该根目录下创建一个最小 Cargo.toml:
[workspace] members = ["src-tauri"]
保存后按 Ctrl+Shift+P → 输入 Rust Analyzer: Reload Workspace,别靠重启硬扛。
- 如果仍报错,检查
src-tauri/Cargo.toml是否有格式错误(比如注释写在数组值后面) - 不要删
src-tauri/icons下的多尺寸图标——打包时会按需提取,缺了 macOS App Store 会拒审
前端热更新失效?根本没连上 dev server
Tauri 自己不跑 Vite/Webpack,tauri dev 只是反向代理到你已启动的前端服务。改代码没反应,90% 是因为 build.devPath 和实际服务地址不一致,或压根没启前端。
检查 tauri.conf.json 中的 build.devPath:
- Vite 默认是
"http://localhost:5173" - Create React App 默认是
"http://localhost:3000" - 不能写成
"src"、"./dist"或错端口(比如:5174)
确认你已在终端单独运行了前端命令:pnpm run dev(Vite)、npm run start(CRA),且端口与 devPath 完全一致。
别直接双击 target/debug/xxx.exe —— 这绕过所有开发服务,自然没 HMR,也看不到 console.log。
Windows 下 0xc0000135 错误不是编译失败
这个错误码意味着运行时 DLL 缺失,不是 Rust 编译出问题,而是 Tauri 构建的二进制依赖系统级 C++ 运行库(如 VCRUNTIME140.dll)。
验证方式:在终端直接运行 src-tauri\target\debug\your-app.exe,如果弹窗提示“缺失 DLL”,就是它。
- 必须安装 Microsoft C++ Build Tools 或 Visual Studio 的 “C++ build tools” 工作负载
- 仅装 Rust 和 Node.js 不够;
rustc --version成功 ≠cargo tauri build能过 - 安装后重启终端,或手动运行
vcvars64.bat让环境变量生效
VSCode 调试前后端要分开配,不能只靠 launch.json 自动生成
VSCode 默认生成的 launch.json 通常只配了 Rust 后端,前端调试需要额外加一个 Chrome 类型配置,否则断点只停 Rust 里,JS 里设了也无效。
推荐做法是用官方跨平台调试工具初始化:
npx @vscode/cross-platform-init --auto-configure
它会在 .vscode/launch.json 里生成带 compounds 的配置,包含两个独立项:
- 一个
type: "pwa-chrome",指向http://localhost:5173(或你的devPath) - 一个
type: "core"或"lldb",指向src-tauri目录
启动调试时选 compound 配置,F5 会同时拉起前端服务和 Rust 进程,前端断点和 #[tauri::command] 里的断点都能命中。
复杂点在于:Rust Analyzer 对 tauri::api::dialog::ask() 这类返回 Result 的函数类型推导常不准,别写 if ask() { },先显式绑定再判断——否则调试时变量面板可能显示为空或类型错乱。











