Windows 打包 Tauri/Rust 项目环境搭建流程

📅 2026/8/25 13:49:28
Windows 打包 Tauri/Rust 项目环境搭建流程
一、前提项目已经克隆到 Windows 本地并用 VS Code 打开。例如C:\Users\aimall\chatvideo\enduser后续所有命令都在VS Code 终端里执行。如果 PowerShell 拦截npm/pnpm统一使用npm.cmd pnpm.cmd不要直接用npm pnpm二、安装和检查基础环境检查 Gitgit --version如果没有 Git需要先安装winget install Git.Git安装完成后重启 VS Code 终端。安装 Node.jswinget install OpenJS.NodeJS.LTS安装完成后重启 VS Code 终端检查node -v npm.cmd -v如果能看到版本号说明 Node 和 npm 可用。安装 pnpmnpm.cmd install -g pnpm检查pnpm.cmd -v三、安装项目依赖进入项目目录cd C:\Users\aimall\chatvideo\enduser安装依赖pnpm.cmd install如果出现【ERR_PNPM_IGNORED_BUILDS 】Ignored build scripts: core-js, esbuild, vue-demi执行pnpm.cmd approve-builds出现选择界面后按 A 全选按 Enter 确认。然后重新安装pnpm.cmd install四、安装 Rust / CargoTauri 打包不是纯前端打包还需要 Rust 编译src-tauri。安装 Rustwinget install Rustlang.Rustup安装完成后重启 VS Code 终端检查rustc -V cargo -V如果能看到版本号说明 Rust 环境正常。五、安装 Microsoft C Build Tools如果执行打包时报failed to get cargo metadata: program not found说明缺 Rust/Cargo。如果报link.exe was not found VS Code is a different product, and is not sufficient说明缺 Microsoft C Build Tools。安装winget install Microsoft.VisualStudio.2022.BuildTools如果没有弹出组件选择界面可以打开Visual Studio Installer找到Visual Studio 生成工具 2022点击修改 / Modify勾选使用 C 的桌面开发 Desktop development with C右侧确认包含MSVC v143 Windows 10 SDK 或 Windows 11 SDK C CMake tools for Windows等待安装完成六、执行 Tauri 打包回到项目目录cd C:\Users\aimall\chatvideo\enduser执行pnpm.cmd tauri build如果正常会开始编译 Rust 和前端项目。七、当前遇到的问题缺 Packet.lib清理缓存后重新打包仍然报错LINK : fatal error LNK1181: 无法打开输入文件“Packet.lib”说明不是缓存问题。已经尝试过清理Remove-Item -Recurse -Force node_modules -ErrorAction SilentlyContinue Remove-Item -Recurse -Force src-tauri\target -ErrorAction SilentlyContinue pnpm.cmd store prune pnpm.cmd install pnpm.cmd tauri build清理后仍然报Packet.lib not found说明项目里的 Rust 依赖需要 Windows 抓包相关开发库。八、下载 WinPcap Developer Pack / WpdPack当前正在处理这一步。打开页面https://www.winpcap.org/devel.htm下载WinPcap 4.1.2 Developers Pack需要的是Developers Pack因为里面包含Packet.lib wpcap.lib Include 头文件下载后得到类似WpdPack_4_1_2.zip九、解压 WpdPack不要直接在 zip 里使用文件要真正解压出来。当前解压路径为C:\Users\aimall\WpdPack实际搜索到Packet.lib的路径是C:\Users\aimall\WpdPack\WpdPack\Lib\Packet.lib C:\Users\aimall\WpdPack\WpdPack\Lib\x64\Packet.lib64 位 Windows 打包优先使用C:\Users\aimall\WpdPack\WpdPack\Lib\x64检查命令Get-ChildItem -Path C:\Users\aimall\WpdPack -Filter Packet.lib -Recurse十、下一步要配置 LIB / INCLUDE找到Packet.lib后需要告诉 Windows 编译器去哪里找它。临时配置当前终端环境变量$env:LIBC:\Users\aimall\WpdPack\WpdPack\Lib\x64;$env:LIB #LIB告诉 link.exe 去哪里找 .lib 文件比如 Packet.lib $env:INCLUDEC:\Users\aimall\WpdPack\WpdPack\Include;$env:INCLUDE #INCLUDE告诉编译器去哪里找 .h 头文件十一、NSIS 打包 exe如果当前只需要 Windows 安装包不强制要求.msi可以先改用 NSIS 打包.exe。pnpm.cmd exec tauri build --bundles nsis这次成功进入 NSIS 打包流程Running makensis.exe to produce ...最终成功生成安装包根据目录找到exe打开即可。十二、第二次打包打开新终端只运行这三句$env:LIBC:\Users\aimall\WpdPack\WpdPack\Lib\x64;$env:LIB $env:INCLUDEC:\Users\aimall\WpdPack\WpdPack\Include;$env:INCLUDE pnpm.cmd exec tauri build --bundles nsis十三、遇到的问题1.啥情况Windows 上同时放了旧版本和新打包的 Tauri/Rust exe打开一个后再打开另一个会白屏、卡死关闭无效只能用任务管理器结束进程。2.原理如果productName和identifier相同Windows/Tauri 会把两个 exe 当作同一个应用共用 AppData、WebView2 或单实例状态导致互相冲突、白屏和卡死。3. 解决办法给新版本单独修改productName和identifier让系统把它识别成一个全新的应用。例如productName: 小马楼1.2.0, identifier: app.reverie.facehi.dev然后重新打包重新安装后新旧版本会被 Windows 识别为两个不同应用从而避免互相冲突解决两个 exe 不能同时正常打开的问题。