Electron应用在Windows系统安装后图标未正常更换的问题求助
Electron应用在Windows系统安装后图标未正常更换的问题求助
大家好,我在Electron.js项目里碰到了一个头疼的图标问题:开发阶段自定义图标显示完全正常,但把应用打包安装到Windows 10系统后,还是显示默认的Electron图标,想请大家帮忙看看哪里出问题了。
我已经尝试过的操作:
图标文件相关
- 制作了
.ico格式的图标文件,手动将它应用到文件夹时显示正常,排除图标本身的问题 - 把这个.ico文件分别放到了项目的
public和resources文件夹中
Electron主进程配置(main.js)
我在主进程里配置了不同环境下的图标路径:
import { app, BrowserWindow, ipcMain } from "electron"; import { fileURLToPath } from "node:url"; import path from "node:path"; import { createNote, deleteNote, getNotes, readNote, writeNote } from "./libs"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); process.env.APP_ROOT = path.join(__dirname, ".."); export const VITE_DEV_SERVER_URL = process.env["VITE_DEV_SERVER_URL"]; export const MAIN_DIST = path.join(process.env.APP_ROOT, "dist-electron"); export const RENDERER_DIST = path.join(process.env.APP_ROOT, "dist"); process.env.VITE_PUBLIC = VITE_DEV_SERVER_URL ? path.join(process.env.APP_ROOT) : path.join(process.env.APP_ROOT, "resources"); const iconPath = process.env.NODE_ENV === "development" ? path.join(process.env.VITE_PUBLIC, "/src/assets/logo.ico") : path.join(RENDERER_DIST, "logo.ico"); console.log(iconPath) let win: BrowserWindow | null; function createWindow() { win = new BrowserWindow({ width: 900, height: 600, minWidth: 900, minHeight: 600, frame: false, transparent: true, visualEffectState: "active", center: true, title: "Note taking app", titleBarStyle: "hidden", trafficLightPosition: { x: 15, y: 10 }, icon: iconPath, webPreferences: { preload: path.join(__dirname, "preload.mjs"), contextIsolation: true, sandbox: true, nodeIntegration: false, }, });
Electron Builder配置(package.json中的build字段)
"build": { "appId": "com.example.electronproject", "productName": "Notepad Premium", "files": [ "dist/**/*", "dist-electron/**/*", "node_modules/**/*", "resources/**/*", "public/logo.ico", "package.json" ], "directories": { "output": "release" }, "extraResources": [ { "from": "/src/assets/logo.ico", "to": "logo.ico" } ], "win": { "target": [ "nsis" ], "icon": "/src/assets/logo.ico", "signAndEditExecutable": false }, "nsis": { "oneClick": false, "allowToChangeInstallationDirectory": true }, "asar": true }
当前的问题现象:
打包安装完成后,以下位置仍然显示默认的Electron图标:
- 应用运行时的任务栏图标
- 开始菜单和桌面快捷方式图标
但在开发模式下,自定义图标是正常显示的。
希望有经验的朋友能帮我排查下问题所在,谢谢!
备注:内容来源于stack exchange,提问作者Shah Mir
相关产品推荐
相关产品推荐

