You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:28:09