前言

这篇就来简单地东西。看看打包。

正文

直接安装

笔者首先搜索了一下,看看其他大佬打包是时候会出现什么问题。如下

从零开始的 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,这些就是打包需要的依赖

如果报错了,就是网络问题,如果可以访问下面的网站,可以自己下,但是笔者感觉,如果能访问下面的网站,也不会出现网络问题。闭环了,哈哈哈哈哈。

 1、NSIS下载Download NSIS: Nullsoft Scriptable Install Systemhttps://sourceforge.net/projects/nsis/files/latest/download

 如果下载不了,网络问题,这就只能靠自己解决了

实际上如果不是网络问题,也不会使用上面这个网站。

2、nsis-tauri-utils

Releases · tauri-apps/nsis-tauri-utilshttps://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/wix3https://github.com/wixtoolset/wix3/releases

能打包,可以了。其实这篇文章就写完了。 

看看打包配置

Configuration | Taurihttps://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 | Taurihttps://v2.tauri.app/distribute/windows-installer/

Configuration | Taurihttps://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.nethttps://sourceforge.net/projects/hmne/安装完成后,流程如下

新建

程序的基本设定

安装程序的基本设定

程序的默认目录

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

图标设置

运行和保存脚本

笔者放在桌面

一个是用于安装,一个生成的安装脚本

运行Setup.exe,安装后,如下

使用nsi文件

tauri默认的nsi文件如下所示

tauri/crates/tauri-bundler/src/bundle/windows/nsis/installer.nsi at dev · tauri-apps/taurihttps://github.com/tauri-apps/tauri/blob/dev/crates/tauri-bundler/src/bundle/windows/nsis/installer.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中

但是,还是报错。

打包倒是可以,报错没解决,不知道什么情况。

可以运行,就这样。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐