Private
Public Access
1
0
Files
u-desk/docs/01-技术文档/图标更换指南.md

3.2 KiB
Raw Permalink Blame History

U-Desk 图标更换指南

最后更新2026-04-15

图标文件体系

U-Desk 有 3 层图标Wails v2 的主图标源是 build/appicon.png不是 build/windows/icon.ico

文件 用途 Wails 是否使用
build/appicon.png (256×256) 唯一图标源 — Wails 构建时自动生成 ICO 嵌入 exe
build/windows/icon.ico Windows 平台资源(被 appicon.png 覆盖) 不直接使用
build/windows/app-icon.png Windows 目录副本 不使用
docs/08-用户指南/u-desk-site/og-image.png 网站品牌图标 / PWA 图标 独立,需手动上传

更换步骤

1. 准备源图

准备 PNG 图片,用 Go 工具压缩并生成多尺寸 ICO

// build/windows/convert_ico.go (用完即删)
// 功能: 读取任意尺寸 PNG → 压缩到 256×256 → 输出 6尺寸 ICO + appicon.png
// go run convert_ico.go

输出:

  • build/appicon.png — 256×256 压缩后(~35KB
  • build/windows/icon.ico — 6尺寸 ICO~53KB

2. 同步到所有位置

cp build/appicon.png build/windows/app-icon.png
cp build/appicon.png docs/08-用户指南/u-desk-site/og-image.png

3. 构建

wails build   # 必须用 wails build不能用 go build

4. 替换桌面 exe

桌面上的 u-desk.exe 是旧 exe 的副本(不是快捷方式),需手动替换:

cp build/bin/u-desk.exe ~/Desktop/u-desk.exe
scp docs/08-用户指南/u-desk-site/og-image.png root@39.99.243.191:/var/www/u-desk-site/

6. 刷新 Windows 图标缓存

# 删除缓存文件
rm -f ~/AppData/Local/IconCache.db
rm -f ~/AppData/Local/Microsoft/Windows/Explorer/iconcache_*.db
rm -f ~/AppData/Local/Microsoft/Windows/Explorer/thumbcache_*.db

# 重启资源管理器
taskkill //F //IM explorer.exe && start explorer.exe

踩坑记录

坑 1: 改了 icon.ico 但 exe 里还是旧图标

原因: Wails v2 以 build/appicon.png 为唯一图标源,构建时忽略 build/windows/icon.ico

解决: 必须更新 build/appicon.png

坑 2: PowerShell System.Drawing 不可靠

原因: Windows 上 Assembly 加载问题Drawing2D 类型解析失败。

解决: 用 Go 标准库 (image/png) 写转换工具,简单可靠。

坑 3: 桌面图标不更新

原因: 用户桌面上放的是旧 exe 的副本 (~/Desktop/u-desk.exe),不是快捷方式 (.lnk)。

解决: 直接 cp 新exe ~/Desktop/u-desk.exe 覆盖。

坑 4: Windows 图标缓存顽固

即使替换了文件Windows 可能仍显示旧图标。

解决: 删除 IconCache.db + iconcache_.db + thumbcache_.db然后重启资源管理器。最彻底的方式是重启电脑。

坑 5: 源图尺寸过大

微信图片通常 1000+ 像素、300+ KB直接使用会导致嵌入 exe 后体积膨胀。

解决: 先用 Go 缩放到 256×256 再生成各尺寸。效果351KB → appicon.png 35KBICO 总计 53KB。

EXE 内嵌图标大小参考

尺寸 大小
256×256 ~58 KB
128×128 ~18 KB
64×64 ~5 KB
48×48 ~3 KB
32×32 ~1.6 KB
16×16 ~3 KB
合计 ~89 KB (占 EXE 0.25%)