Electron应用发布至Windows Store图标异常问题求助
我之前也碰到过一模一样的情况——本地的exe和Appx图标都正常,一上传到Windows Store就变成默认Electron图标,折腾了好一阵才搞定,给你几个关键步骤试试:
1. 先搞懂Windows Store的图标要求
Windows Store对Appx包的图标有严格的尺寸和命名规范,不是只靠一个ico文件就能搞定的。你需要准备这些尺寸的PNG图标:
- Square44x44Logo.png(用于任务栏、开始菜单小图标)
- Square150x150Logo.png(开始菜单主图标)
- Wide310x150Logo.png(开始菜单宽图标)
- Square310x310Logo.png(商店详情页大图标)
把这些图标放到你配置的buildResources目录下的Assets文件夹里(也就是build/Assets,因为你设置了"buildResources": "build")。
2. 调整package.json的Appx配置
你现在的配置只指定了Win的通用图标,但Appx需要单独的配置来识别这些专用图标。可以在win配置里添加appx字段,明确指定图标路径,或者让electron-builder自动读取Assets里的图标:
"build": { "appId": "xxxx.xxxx.xxxx", "directories": { "buildResources": "build" }, "win": { "icon": "assets/icons/win/icon.ico", "target": [ "Appx", "nsis" ], "appx": { "applicationId": "xxxx.xxxx.xxxx", // 和appId保持一致 "displayName": "你的应用名称", "icons": { "Square44x44Logo": "build/Assets/Square44x44Logo.png", "Square150x150Logo": "build/Assets/Square150x150Logo.png", "Wide310x150Logo": "build/Assets/Wide310x150Logo.png", "Square310x310Logo": "build/Assets/Square310x310Logo.png" } } }, "nsis": { "artifactName": "${productName}_Setup_${version}.${ext}", "installerIcon": "assets/icons/win/icon.ico" } }
如果你的图标命名完全符合Windows的规范,其实也可以不用手动指定icons字段——electron-builder会自动扫描build/Assets目录下的对应文件。
3. 清理缓存,重新打包
旧的打包缓存很容易导致图标不更新,先删除node_modules/.cache/electron-builder这个文件夹,然后重新运行打包命令:
electron-builder build --win appx
4. 验证打包后的Appx包
打包完成后,把生成的.appx文件解压,检查Assets文件夹里的图标是否都存在、命名正确。如果这里的图标是对的,那上传到商店后就应该显示正常了。
5. 检查商店后台的设置
有时候即使包内图标正确,商店后台可能需要你手动确认或上传图标。登录Windows Dev Center,进入你的应用页面,在「Store listing」板块里检查图标是否已经正确加载,必要时手动上传符合要求的图标文件。
为什么本地Appx正常但商店不行?
本地安装的Appx会读取ico文件转换的图标作为 fallback,但Windows Store会严格要求使用指定尺寸和命名的PNG图标,这就是两者差异的原因。
内容的提问来源于stack exchange,提问作者Akshay Billore

