【Tauri2】031 windows系统下的打包
前言
这篇就来简单地东西。看看打包。
正文
直接安装
笔者首先搜索了一下,看看其他大佬打包是时候会出现什么问题。如下
从零开始的 Tauri 开发 & 打包成 exe 【Windows 平台】_tauri 打包-CSDN博客
https://blog.csdn.net/u010263423/article/details/136006546还有其他大佬的报错,笔者就不展示了。
至今为止,实际上,tauri版本已经更新到2.5.1,打包报错的事情,少有。
笔者感觉打包没有什么问题了。
笔者新建一个项目,然后安装依赖,什么都不改,直接打包,运行命令
pnpm run tauri build
结果是成功的,没有任何报错

可能是因为笔者不是第一次打包,依赖都已经下好了。
在笔者的目录下,C:\Users\26644\AppData\Local\tauri,这些就是打包需要的依赖

如果报错了,就是网络问题,如果可以访问下面的网站,可以自己下,但是笔者感觉,如果能访问下面的网站,也不会出现网络问题。闭环了,哈哈哈哈哈。
如果下载不了,网络问题,这就只能靠自己解决了
实际上如果不是网络问题,也不会使用上面这个网站。
2、nsis-tauri-utils
Releases · tauri-apps/nsis-tauri-utils
https://github.com/tauri-apps/nsis-tauri-utils/releases下载后放到
C:\Users\26644\AppData\Local\tauri\NSIS\Plugins\x86-unicode\nsis-tauri-utils.dll
以及NSIS-ApplicationID,笔者并没有在目前打包的工具中,没发现这个东西。
3、WixTools下载
Releases · wixtoolset/wix3
https://github.com/wixtoolset/wix3/releases
能打包,可以了。其实这篇文章就写完了。
看看打包配置
Configuration | Tauri
https://v2.tauri.app/reference/config/#bundleconfig在配置文件中的bundle键,看看默认打包配置
"bundle": {
"active": true,
"targets": "all",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
}
看看其中的含义吧
- active :是否启用Tauri的打包功能。如果设置为true,Tauri会将应用打包成可分发的安装包;如果设置为`false`,则只生成可执行文件。
- android:Android平台的配置。
- category:用于在应用商店或系统中对应用进行分类。可选值包括但不限于:
- Business
- DeveloperTool
- Education
- Entertainment
- Finance
- Game
- GraphicsAndDesign
- HealthcareAndFitness
- Lifestyle
- Music
- News
- Productivity
- SocialNetworking
- Sports
- Travel
- Utility
- Weather
- copyright:通常包含版权持有者和版权年份。
- createUpdaterArtifacts:如果启用,Tauri会生成用于自动更新的文件和签名。
- externalBin:Tauri会根据目标平台查找特定的二进制文件fileAssociations:定义应用可以打开的文件类型及其扩展名。
- homepage:应用的主页URL。如果未设置,将回退到`Cargo.toml`中定义的主页。
可以在Cargo.toml的键package中
homepage = "https://www.baidu.com"
- icon:指定应用的图标文件路径,用于在桌面、任务栏等地方显示。
- iOS:iOS平台的配置。
- license:应用的许可证标识符,如果未设置,将默认使用`Cargo.toml`中定义的许可证
- licenseFile:许可证文件的路径
- linux:Linux平台的配置。
- longDescription:应用的长描述。用于在应用商店或安装程序中显示更详细的应用介绍。
- macOS:macOS平台的配置。
- publisher:应用的发布者。
- resources:需要打包到应用中的资源文件路径列表。
- shortDescription:用于在应用商店或安装程序中显示简短的应用介绍。
- targets:支持的打包目标包括"deb", "rpm", "appimage", "nsis"`, `"msi", "app", "dmg"或"all"。
- useLocalToolsDir:如果设置为`true`,工具将缓存在`target/.tauri/`目录中;如果设置为`false`,工具将缓存在当前用户的平台特定缓存目录中。
- windows“:Windows平台的配置。
看个人需要,这就不必细说。
如果配置了externalBin和resources,也会被打包的。
比如就简单地修改active
"bundle": {
"active": false,
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
}
active设为false,target就没有用了。
或者active设为true,target不设为all,设为msi等,设为dmg,什么都没有出现。
如果运行命令
pnpm tauri build --bundles dmg
会报错
error: invalid value 'dmg' for '--bundles [<BUNDLES>...]'
[possible values: msi, nsis]
看看Windos平台的配置
Windows Installer | Tauri
https://v2.tauri.app/distribute/windows-installer/
Configuration | Tauri
https://v2.tauri.app/reference/config/#windowsconfig
WindowsConfig
- allowDowngrades:是否允许安装更低版本的应用。
- certificateThumbprint:代码签名证书的 SHA1 指纹(需从证书管理器中获取)
- digestAlgorithm :文件签名使用的摘要算法。
- nsis:NSIS 安装器的自定义配置(如脚本、界面语言等)。
- wix:WiX 工具集的 MSI 安装包配置(如自定义 UI、安装路径等)
- signCommand:自定义签名命令(替换默认的 `signtool.exe`)
- timestampUrl 时间戳服务器 URL(用于防止签名过期)。
- tsp 是否使用 RFC 3161 时间戳协议(TSP)。
- webviewInstallMode:控制 WebView2 运行时的安装方式
看个人需求,笔者就不使用了
NsisConfig
- compression:压缩算法
- installMode :安装范围。"currentUser" ,"perMachine","bath"。
- languages: 支持的语言列表。
- displayLanguageSelector: 是否显示语言选择对话框(默认自动匹配系统语言)
- installerIcon:安装程序图标路径(`.ico` 格式)
- headerImage:安装页面顶部横幅图片
- sidebarImage:欢迎页和完成页侧边栏图片(
- startMenuFolder:开始菜单快捷方式的父文件夹名称
- installerHooks:自定义 NSIS 脚本钩子(如安装前后执行操作) minimumWebview2Version:强制要求最低 WebView2 版本
- template:完全自定义的 NSIS 模板文件
在bundle中添加windows,如下
"windows": {
"nsis":{
"installMode": "both"
}
},
打包后,就会出现选择了

路径也会进行选择

使用NSIS自定义打包
笔者会使用NSIS这个东西,就来演示一下,自定义打包
需要安装NIS Edit
HM NIS Edit download | SourceForge.net
https://sourceforge.net/projects/hmne/安装完成后,流程如下
新建

程序的基本设定

安装程序的基本设定

程序的默认目录

exe文件,看情况,如果还有其他文件,可以添加

图标设置

运行和保存脚本

笔者放在桌面

一个是用于安装,一个生成的安装脚本
运行Setup.exe,安装后,如下

使用nsi文件
tauri默认的nsi文件如下所示
笔者将tb.nsi放到src-tauri目录下
使用template
"windows": {
"nsis":{
"template": "tb.nsi"
}
},
打包,然后就报错了
failed to bundle project: `stream did not contain valid UTF-8`
Error failed to bundle project: `stream did not contain valid UTF-8`
看来是编码的问题,可能是中文的影响。
笔者使用makensisw.exe运行tb.nsi,没问题的


笔者将tb.nsi的所有中文变成英文后,打包
又报错
failed to bundle project: `系统找不到指定的文件。 (os error 2)`
Error failed to bundle project: `系统找不到指定的文件。 (os error 2)`
路径居然没写对????????
写绝对路径也报错。
但是笔者发现Setup.exe,
没找到文件什么文件?
如果没找到tb.nsi,为什么又生成了Setup.exe。

打开Setup.exe,可以运行。
Compiling tb v0.1.0 (F:\Users\26644\RustProject\tb\src-tauri)
Finished `release` profile [optimized] target(s) in 42.74s
Built application at: F:\Users\26644\RustProject\tb\src-tauri\target\release\tb.exe
Info Target: x64
Running makensis to produce F:\Users\26644\RustProject\tb\src-tauri\target\release\bundle\nsis\tb_0.1.0_x64-setup.exe
failed to bundle project: `系统找不到指定的文件。 (os error 2)`
Error failed to bundle project: `系统找不到指定的文件。 (os error 2)`
难道是需要设置名字为tb_0.1.0_x64-setup.exe

修改名字,再次运行。
还是报错

笔者修改路径输出路径
OutFile "../../bundle/nsis/tb_0.1.0_x64-setup.exe"
最后输出到bundle/nsis中
但是,还是报错。

打包倒是可以,报错没解决,不知道什么情况。
可以运行,就这样。
更多推荐
所有评论(0)