tauri打包失败Error failed to bundle project: error running light.exe,是因为WiX Toolset不支持中文,

Running light to produce D:\a\PakePlus\PakePlus\src-tauri\target\release\bundle\msi\快手_0.0.1_x64_en-US.msi

Error failed to bundle project: error running light.exe

 ELIFECYCLE  Command failed with exit code 1.

Error: Command failed with exit code 1: pnpm tauri build

在 Tauri 使用 GitHub Actions 打包 Windows MSI 时,如果遇到 error running light.exe 的错误,特别是在打包路径中包含非 ASCII 字符(如中文字符 抖音)时,问题可能与 WiX Toolset 不支持文件路径中的非 ASCII 字符有关。

解决方案

1. 避免使用非 ASCII 字符

WiX Toolset 对于文件路径中包含非 ASCII 字符(例如中文字符)可能会出现问题。你可以尝试将生成的 MSI 文件名和路径中的中文字符替换为英文,或者使用拼音代替。

修改 tauri.conf.json 文件中的 productName 和打包相关的设置,确保它们不包含中文字符:

{
  "package": {
    "productName": "DouyinApp",  // 避免使用中文字符
    "version": "0.0.1"
  },
  "tauri": {
    "bundle": {
      "identifier": "com.example.douyinapp",
      "active": true,
      "targets": ["msi"],  
      "windows": {
        "certificateThumbprint": "",
        "timestampUrl": "http://timestamp.digicert.com",
        "iconPath": "src-tauri/icons/app.ico"
      }
    }
  }
}

productName: 将 抖音 修改为英文名称(如 DouyinApp)来避免中文字符。

确保生成的路径不包含中文字符,以确保 WiX Toolset 可以正常处理。

2. 修改 GitHub Actions 的打包路径

确保 GitHub Actions 中的工作目录不包含中文字符或其他非 ASCII 字符。你可以使用临时文件夹来避免路径问题。

在你的 GitHub Actions workflow 中,可以将输出路径更改为一个不包含中文字符的路径,例如:

      - name: Set output path
        run: |
          mkdir -p temp_build
          cd temp_build
          pnpm tauri build -- --target temp_build

通过设置工作目录为 temp_build,你可以避免在 light.exe 的执行路径中包含中文字符。

3. 使用环境变量 WIX 来指定 WiX 路径

如果 WiX Toolset 已正确安装,但仍然出现 light.exe 错误,可能需要显式指定 WiX Toolset 的路径。可以通过在 GitHub Actions workflow 中设置环境变量 WIX 来指定 WiX 路径:

      - name: Set WiX environment variable
        run: |
          echo "WIX=C:/Program Files (x86)/WiX Toolset v3.11/bin" >> $env:GITHUB_ENV

示例:完整的 GitHub Actions workflow

jobs:
  build:
    runs-on: windows-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true

      - name: Install Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '16'

      - name: Install pnpm
        run: npm install -g pnpm

      - name: Install Tauri dependencies
        run: pnpm install

      - name: Install WiX Toolset
        run: |
          choco install wixtoolset --version=3.11.2 -y
          echo "C:/Program Files (x86)/WiX Toolset v3.11/bin" >> $env:GITHUB_PATH

      - name: Set WiX environment variable
        run: |
          echo "WIX=C:/Program Files (x86)/WiX Toolset v3.11/bin" >> $env:GITHUB_ENV

      - name: Build Tauri app
        run: |
          mkdir -p temp_build
          cd temp_build
          pnpm tauri build -- --target temp_build

总结

error running light.exe 错误常见原因是路径中包含非 ASCII 字符,特别是中文字符时,WiX Toolset 可能无法正常处理。通过避免使用中文字符、明确指定 WiX 工具路径和调整 GitHub Actions 工作目录,你可以解决这个问题并成功打包 Tauri 应用。

WiX Toolset 是一个开源项目,它的源码托管在 GitHub 上。你可以通过以下链接访问 WiX Toolset 的官方开源仓库:

WiX Toolset GitHub 仓库

这是 WiX Toolset 的 3.x 版本仓库,它是目前最常用的稳定版本。如果你想了解更多关于 WiX 的文档、贡献信息以及相关工具的使用,可以在该仓库中找到。

WiX 4.x 版本也在开发中,你可以通过以下链接访问:

WiX 4 GitHub 仓库

WiX 4.x 引入了一些新的改进和功能,因此如果你对未来版本感兴趣,也可以关注这个仓库。

猜你喜欢

转载自blog.csdn.net/weixin_44786530/article/details/143132166