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 的 3.x 版本仓库,它是目前最常用的稳定版本。如果你想了解更多关于 WiX 的文档、贡献信息以及相关工具的使用,可以在该仓库中找到。
WiX 4.x 版本也在开发中,你可以通过以下链接访问:
WiX 4.x 引入了一些新的改进和功能,因此如果你对未来版本感兴趣,也可以关注这个仓库。