构建含NestJS Sidecar的Tauri/Vue应用时windres执行失败求助
问题排查:Tauri构建时windres缺失错误
错误核心信息
执行npm run tauri build时触发以下关键错误:
thread 'main' panicked at ...\embed-resource-2.2.0\src\windows_not_msvc.rs:49:23: Couldn't to execute windres to compile "...\resource.rc" into "...\libresource.a": program not found
问题根源
windres是MinGW-w64工具链中的Windows资源编译器,当前系统要么未安装MinGW-w64,要么其bin目录未加入系统环境变量PATH,导致Cargo无法调用该工具完成资源文件编译。
解决方案
安装MinGW-w64工具链
- 推荐通过MSYS2安装:下载并安装MSYS2后,打开MSYS2终端执行
pacman -S mingw-w64-x86_64-toolchain,安装完整的x86_64架构工具链。 - 或直接下载独立MinGW-w64安装包,选择x86_64架构、posix线程模型完成安装。
- 推荐通过MSYS2安装:下载并安装MSYS2后,打开MSYS2终端执行
将MinGW添加到系统PATH
- 找到MinGW安装路径下的
bin目录(例如C:\msys64\mingw64\bin或C:\mingw64\bin)。 - 打开系统环境变量设置,将该路径添加到
PATH变量列表中。
- 找到MinGW安装路径下的
重启终端/开发环境
- 关闭所有打开的终端、IDE,重新启动后执行
windres --version,验证工具是否能正常调用。 - 再次运行
npm run tauri build。
- 关闭所有打开的终端、IDE,重新启动后执行
移除冗余依赖(可选)
- 检查
Cargo.toml中的windres = "0.2.2"依赖项,Tauri的tauri-build已内置资源编译逻辑,手动添加该依赖可能引发冲突,建议移除后重试构建。
- 检查
Sidecar配置附加验证
确保Sidecar相关配置无问题:
src-tauri/binaries目录下存在对应架构的NestJS编译产物(如ithar-backend-x86_64-pc-windows-gnu.exe)。tauri.conf.json中externalBin和shell.scope的路径均为binaries/ithar-backend,与实际文件前缀一致。
内容的提问来源于stack exchange,提问作者Ala Eddine Kezzouz
相关产品推荐
相关产品推荐

