必须打开含tauri.conf.json和src-tauri的最外层目录,创建cargo.toml声明[workspace] members=["src-tauri"],再执行rust analyzer: reload workspace;前端热更新需确保devpath与独立启动的前端服务端口一致;windows下0xc0000135错误须安装microsoft c++ build tools;联合调试需配置compound launch.json。

VSCode 必须打开项目根目录才能触发 Tauri 调试上下文
VSCode 不会自动识别 src-tauri 是一个 crate,除非它被明确置于 workspace 根下。如果你只打开了 src-tauri 子目录,rust-analyzer 就看不到 tauri.conf.json,也加载不了 tauri-build 这类 build script 依赖,结果就是 main.rs 里所有 #[tauri::command] 都标红、跳转失效、断点不生效。
必须做三件事:
- 用 VSCode 打开含
tauri.conf.json和src-tauri的最外层文件夹(不是子目录) - 在该目录下创建
Cargo.toml,内容仅一行:[workspace] members = ["src-tauri"] - 按
Ctrl+Shift+P→ 输入Rust Analyzer: Reload Workspace,别靠重启硬等
前端热更新失效时,Ctrl+Shift+P 启动的是“假 dev”
tauri dev 本身不跑 Vite 或 React Server,它只是个反向代理。你用 Ctrl+Shift+P → Tauri: Run Dev 启动后,如果前端改代码没反应,90% 是因为前端服务根本没起来,或者端口对不上。
检查点很具体:
- 确认
tauri.conf.json中build.devPath值:Vite 项目写"http://localhost:5173",CRA 写"http://localhost:3000",不能是"./src"或"127.0.0.1:5173" - 在独立终端执行前端命令:
pnpm run dev(Vite)、npm run start(CRA),确保输出里有Local:行且端口一致 - 别双击
target/debug/xxx.exe—— 这绕过所有开发链路,console.log都看不到
Windows 下 0xc0000135 错误和快捷键无关,但影响调试启动
这个错误码不是编译失败,也不是快捷键按错,而是运行时找不到 VCRUNTIME140.dll。即使你用 Ctrl+F5 启动调试,也会一闪而过或弹窗报错。
真正要做的不是改快捷键,而是补系统依赖:
- 安装 Microsoft C++ Build Tools(不是仅 WebView2,也不是仅 rustup)
- 确保勾选 “使用 C++ 的桌面开发” 工作负载 + Windows SDK
- 验证方式:终端运行
cl /?有输出,再跑rustc --version确认能调用 MSVC - 如果已装但仍报错,手动执行
vcvars64.bat(路径类似C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat)再重开终端
联合调试需手动配 launch.json,F5 不会自动生效
VSCode 默认的 F5 只能 attach 到 Rust 进程或前端浏览器,无法同时断点。Tauri 开发要求前后端一起挂起,必须显式配置 compound launch。
最小可用配置示例(放在 .vscode/launch.json):
{
"version": "0.2.0",
"configurations": [
{
"type": "pwa-node",
"request": "launch",
"name": "Frontend",
"skipFiles": ["<node_internals>/**"],
"env": {"NODE_ENV": "development"},
"runtimeExecutable": "pnpm",
"runtimeArgs": ["run", "dev"],
"port": 9229,
"autoAttachChildProcesses": true
},
{
"type": "cppvsdbg",
"request": "launch",
"name": "Backend",
"program": "${workspaceFolder}/src-tauri/target/debug/your-app-name.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false
}
],
"compounds": [
{
"name": "Tauri Dev",
"configurations": ["Frontend", "Backend"],
"preLaunchTask": "tauri: dev"
}
]
}</node_internals>
关键细节:
-
preLaunchTask必须指向你定义的tauri: devtask(在tasks.json里),不能直接写tauri dev命令 - 前端配置用
pwa-node类型,不是chrome;Rust 后端用cppvsdbg(Windows)或lldb(macOS/Linux) - 第一次运行前,先确保前端服务已手动跑起来一次,否则 compound 会卡在前端启动环节
F5 启动的是 compound,Ctrl+Shift+P 里选 Developer: Toggle Developer Tools 查看前端控制台,Ctrl+Shift+I 打开浏览器 DevTools —— 这些才是真正在用的快捷键组合。别指望一键全包,Tauri 的跨 runtime 调试天然需要分层介入。











