☰
LightC 打包发布终极指南:5 步从开发环境到 NSIS 安装包,含 WebView2 离线部署与图标生成
2026/10/2 2:23:38 网站建设 项目流程

LightC 打包发布终极指南:5 步从开发环境到 NSIS 安装包,含 WebView2 离线部署与图标生成

【免费下载链接】light-cA free, minimalist, lightweight, and high-performance C-drive cleanup tool.项目地址: https://gitcode.com/gh_mirrors/li/light-c

LightC 是一款免费的 Windows C 盘清理工具,基于 React + Rust + Tauri 2 构建。本文带你完整走一遍LightC 打包发布流程:搭建 Tauri 开发环境、生成应用图标、配置 NSIS 安装包,并解决WebView2 离线部署这一常见坑点。全程命令均已封装在项目脚本中,照着做即可产出可发布的 Setup 安装包、MSI 与便携版 🚀

发布流程总览

LightC 的发布产物由 pack.ps1 一键产出,最终包含 4 类资产:

产物说明
LightC_x_x_x_x64_Setup.exeNSIS 安装版(对外主推)
LightC_x_x_x_x64_Installer.msiMSI 安装版
LightC_x_x_x_x64_Portable.zip便携版压缩包
*.sig+SHA256SUMS.txt自动更新签名与 SHA256 校验值

所有产物统一输出到dist_release/目录,可直接上传到 Release 页面。

开发环境搭建:Node.js + Rust 双工具链

LightC 前端用 React/TypeScript,后端用 Rust,因此需要两套工具链。README.zh-CN.md 中列出的环境要求如下:

  • Windows 10 或更高版本
  • Node.js 20.19+和 npm(前端与 Tauri CLI)
  • Rust 工具链(Tauri 2 编译后端所需)

克隆仓库后执行初始化:

git clone https://gitcode.com/gh_mirrors/li/light-c cd light-c npm install

常用命令(见 package.json):

npm run dev # 启动 Vite 前端开发服务 npm run tauri dev # 本地开发预览 Tauri 桌面应用 npm run build # 前端生产构建(tsc + vite build)

npm run tauri dev会自动触发 tauri.conf.json 中beforeDevCommand配置的npm run dev,并在http://localhost:1666加载前端,热更新调试非常方便。

图标生成:一张 SVG 源图产出全套图标

LightC 所有图标都以 src-tauri/icons/icon.svg 为唯一源,通过 scripts/ 目录下的脚本批量生成,步骤记录在 scripts/生成图标.md:

1️⃣ 生成多尺寸 PNG

node scripts/generate-icons.js

generate-icons.js 基于 sharp 将 SVG 缩放为 Tauri 所需的全部尺寸:32x32、48x48、128x128、128x128@2x、512x512,以及 Windows Store 专用的Square30x30Logo.png~Square310x310Logo.png系列。其中 48px 尺寸专门针对 Windows 大图标视图优化,缺失时容易放大模糊。

2️⃣ 合成 Windows ICO

node scripts/generate-ico.js

generate-ico.js 用 png-to-ico 将 32/48/128/256 四个尺寸 PNG 打包进icon.ico,作为 exe 与安装向导图标。

3️⃣ 生成 NSIS 安装向导 BMP

node scripts/gen-nsis-assets.js

gen-nsis-assets.js 会生成两张 NSIS 定制图:

  • src-tauri/nsis/wizard.bmp:164x314 侧边栏图,翡翠绿渐变背景 + 居中 Logo
  • src-tauri/nsis/header.bmp:150x57 顶部横幅,白底右侧 Logo

由于 sharp 不直接支持 BMP 输出,脚本内手动构建了 24-bit BMP 文件头并做 4 字节行对齐,这个细节保证了图片在老版 Windows 上也能正常显示。

NSIS 安装包配置:关键参数一览

打包配置集中在 tauri.conf.json 的bundle节点:

"targets": ["nsis"], "createUpdaterArtifacts": true, "windows": { "webviewInstallMode": { "type": "skip" }, "nsis": { "installerIcon": "icons/icon.ico", "headerImage": "nsis/header.bmp", "sidebarImage": "nsis/wizard.bmp", "installMode": "currentUser", "installerHooks": "nsis/installer-hooks.nsh", "languages": ["SimpChinese", "English"] } }

几个关键决策:

  • installMode: "currentUser":安装到当前用户目录,无需管理员权限,对普通用户更友好
  • createUpdaterArtifacts:构建时自动为 exe 与安装包生成.sig签名资产,配合 plugins.updater.pubkey 实现应用内自动更新
  • webviewInstallMode: "skip":常规包不再捆绑联网下载 WebView2 的行为(原因见下一节)
  • installerHooks:挂载 NSIS 前置钩子,处理进程占用与运行时检测

WebView2 离线部署:为什么常规包不再自动下载

Tauri 应用依赖Microsoft Edge WebView2 Runtime。若安装时由微软 bootstrapper 联网拉取运行时,在弱网或企业环境中常出现两类问题:安装失败、桌面多出一个多余的 Edge 快捷方式。

LightC 的解法是把常规包和离线包分开:

常规包— installer-hooks.nsh

  1. 预安装阶段先用taskkill关闭旧的LightC.exe,避免"无法打开要写入的文件"
  2. 依次查询 HKLM(含 WOW6432Node)与 HKCU 注册表中的 WebView2 版本号({F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}的pv值)
  3. 若未检测到运行时,弹窗提示用户从官方 Release 下载带版本号的 WebView2 离线安装包,然后中止安装

离线包— installer-hooks-webview2-offline.nsh

离线包自带 WebView2 安装器,钩子只保留"关闭旧进程"逻辑,不再拦截缺失的运行时,由包内安装器完成离线部署。这样用户在完全无网环境下也能顺利装好 LightC。

一键打包:pack.ps1 的四个阶段

发布时执行:

.\pack.ps1

pack.ps1 按 4 个阶段自动完成发布准备:

  1. 读取版本:解析 tauri.conf.json 的version与productName
  2. 构建:要求私钥文件.tauri/lightc.key存在(密码通过环境变量TAURI_SIGNING_PRIVATE_KEY_PASSWORD注入,不落盘),随后执行npm run tauri build
  3. 打包产物:拷贝 MSI / NSIS 安装包及.sig签名,组装便携版目录(LightC.exe+ DLL +resources+ LightC.portable.json 清单),压缩为LightC_x_x_x_x64_Portable.zip,并对安装版与便携版 exe 分别生成签名资产
  4. 校验:为dist_release/内全部文件计算 SHA256,生成SHA256SUMS.txt供用户验签

脚本结束后会在控制台列出各产物名称与体积,签名相关环境变量随即被清理,保证密钥不出现在磁盘残留中。

发布检查清单 ✅

  • 已执行node scripts/generate-icons.js、node scripts/generate-ico.js、node scripts/gen-nsis-assets.js
  • 修改 tauri.conf.json 的version与 package.json 的version保持一致
  • .tauri/lightc.key私钥就位,密码已设置为环境变量
  • .\pack.ps1执行成功,dist_release/中 4 类产物齐全
  • 更新 CHANGELOG.zh-CN.md 与 CHANGELOG.md(中英逐条对应)
  • 上传 Release 并同步latest.json供应用内自动更新

总结

LightC 的打包发布体系可以概括为一句话:SVG 单源图标 + 脚本化 NSIS 定制 + 双轨 WebView2 策略 + 签名化产物。环境搭建只需 Node.js 与 Rust 两条工具链,其余均由仓库内脚本自动化。按照本文顺序执行,你也能在几十分钟内产出一套可发布的 NSIS 安装包 📦

相关文件速查:发布脚本 pack.ps1 | 打包配置 src-tauri/tauri.conf.json | 图标脚本 scripts/generate-icons.js | NSIS 钩子 src-tauri/nsis/installer-hooks.nsh

【免费下载链接】light-cA free, minimalist, lightweight, and high-performance C-drive cleanup tool.项目地址: https://gitcode.com/gh_mirrors/li/light-c

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询