# 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：

```go
// 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. 同步到所有位置

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

### 3. 构建

```bash
wails build   # 必须用 wails build，不能用 go build
```

### 4. 替换桌面 exe

桌面上的 `u-desk.exe` 是旧 exe 的**副本**（不是快捷方式），需手动替换：

```bash
cp build/bin/u-desk.exe ~/Desktop/u-desk.exe
```

### 5. 上传网站 logo

```bash
scp docs/08-用户指南/u-desk-site/og-image.png root@39.99.243.191:/var/www/u-desk-site/
```

### 6. 刷新 Windows 图标缓存

```bash
# 删除缓存文件
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 35KB，ICO 总计 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%)** |
