如何使用tauri_cli::run命令构建Tauri应用?构建卡住求助
解决Tauri应用在build.rs中调用构建导致的无限循环问题
问题根源
你遇到的无限构建循环是因为build.rs属于Cargo构建流程的一部分——当你在build.rs里调用tauri_cli::run(["build"], None)时,这个命令会再次触发Cargo对整个项目的构建流程,包括重新执行当前的build.rs,从而形成死循环。
解决方案
放弃在build.rs中调用Tauri构建
官方推荐的Tauri构建方式就是直接在Tauri应用的crate目录下执行cargo tauri build,这个命令会正确处理前端资源打包、Rust二进制编译、最终应用打包等全流程,不会触发循环。实现单一二进制输出的正确配置
- 确保你的工作区中,只有Tauri应用所在的crate是二进制类型(在其
Cargo.toml中通过[[bin]]声明),其他所有依赖crate都设置为库类型(Cargo.toml中设置[lib])。 - 在Tauri应用的
Cargo.toml中添加对其他lib crate的依赖,比如:
执行[dependencies] my_custom_lib = { path = "../my_custom_lib" }cargo tauri build时,Cargo会自动将所有依赖的lib编译并链接到最终的Tauri二进制文件中,自然得到单一二进制产物。
- 确保你的工作区中,只有Tauri应用所在的crate是二进制类型(在其
一键构建的替代方案
如果需要通过单一命令触发构建,可以在项目根目录创建一个脚本:- Linux/macOS(build.sh):
#!/bin/bash cd ./path/to/tauri-app-crate cargo tauri build - Windows(build.bat):
cd .\path\to\tauri-app-crate cargo tauri build
给脚本添加执行权限后,运行脚本即可一键完成构建,同时避免循环问题。
- Linux/macOS(build.sh):
内容的提问来源于stack exchange,提问作者eldoccc
相关产品推荐
相关产品推荐

