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

Electron-Vite + Electron Builder打包Windows端exe文件图标不生效问题求助

Electron-Vite + Electron Builder打包Windows端exe文件图标不生效问题求助

大家好,我目前在使用Electron-Vite结合Electron Builder打包Windows应用时碰到了一个棘手的问题:打包过程完全成功,安装程序的图标也能正常显示我自定义的图标,但生成的主exe文件图标始终是默认的Electron图标,没有替换成我准备的256x256尺寸的ico文件。我已经确认build文件夹里的icon.ico文件确实存在,但就是不生效,想请教下有没有朋友遇到过类似情况,或者能帮我看看配置哪里出问题了?

我的electron-builder.yml配置:

appId: com.ownloader.app
productName: pepper-downloader
directories:
  buildResources: build
files:
  - '!**/.vscode/*'
  - '!src/*'
  - '!electron.vite.config.{js,ts,mjs,cjs}'
  - '!{.eslintcache,eslint.config.mjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
  - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
  - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
asarUnpack:
  - resources/**
extraResources:
  - from: build/icon.ico
    to: icon.ico
win:
  executableName: pepper-downloader
  icon: build/icon.ico
nsis:
  artifactName: ${name}-${version}-setup.${ext}
  shortcutName: ${productName}
  uninstallDisplayName: ${productName}
  createDesktopShortcut: always
mac:
  entitlementsInherit: build/entitlements.mac.plist
  extendInfo:
    - NSCameraUsageDescription: Application requests access to the device's camera.
    - NSMicrophoneUsageDescription: Application requests access to the device's microphone.
    - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
    - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
  notarize: false
dmg:
  artifactName: ${name}-${version}.${ext}
linux:
  target:
    - AppImage
    - snap
    - deb
  maintainer: electronjs.org
  category: Utility
appImage:
  artifactName: ${name}-${version}.${ext}
npmRebuild: false
publish:
  provider: generic
  url: https://example.com/auto-updates

我的package.json配置:

{
  "name": "pepper-downloader",
  "version": "1.0.0",
  "description": "",
  "main": "./out/main/index.js",
  "author": "MIRTAHAALI",
  "homepage": "https://electron-vite.org",
  "scripts": {
    "format": "prettier --write .",
    "lint": "eslint --cache .",
    "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
    "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
    "typecheck": "npm run typecheck:node && npm run typecheck:web",
    "start": "electron-vite preview",
    "dev": "electron-vite dev",
    "build": "electron-vite build",
    "postinstall": "electron-builder install-app-deps",
    "build:unpack": "npm run build && electron-builder --dir",
    "build:win": "npm run build && electron-builder --win",
    "build:mac": "electron-vite build && electron-builder --mac",
    "build:linux": "electron-vite build && electron-builder --linux"
  },
  "dependencies": {
    "@electron-toolkit/preload": "^3.0.1",
    "@electron-toolkit/utils": "^4.0.0",
    "@emotion/react": "^11.14.0",
    "@emotion/styled": "^11.14.0",
    "@iconify/react": "^6.0.0",
    "@mui/icons-material": "^7.1.1",
    "@mui/material": "^7.1.1",
    "@mui/x-data-grid": "^8.5.0",
    "@reduxjs/toolkit": "^2.8.2",
    "easydl": "^1.2.0",
    "express": "^5.1.0",
    "joi": "^17.13.3",
    "react-redux": "^9.2.0",
    "socket.io": "^4.8.1"
  },
  "devDependencies": {
    "@electron-toolkit/eslint-config-prettier": "^3.0.0",
    "@electron-toolkit/eslint-config-ts": "^3.0.0",
    "@electron-toolkit/tsconfig": "^1.0.1",
    "@types/node": "^22.14.1",
    "@types/react": "^19.1.1",
    "@types/react-dom": "^19.1.2",
    "@vitejs/plugin-react": "^4.3.4",
    "electron": "^35.1.5",
    "electron-builder": "^25.1.8",
    "electron-vite": "^3.1.0",
    "eslint": "^9.24.0",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.19",
    "prettier": "^3.5.3",
    "react": "^19.1.0",
    "react-dom": "^19.1.0",
    "typescript": "^5.8.3",
    "vite": "^6.2.6"
  },
  "pnpm": {
    "onlyBuiltDependencies": [
      "electron",
      "esbuild"
    ]
  }
}

我已经排查过的点:

  • 确认build/icon.ico文件存在,且是256x256的标准ico格式
  • 打包过程无任何报错信息,安装程序的图标显示正常
  • 尝试清理过node_modules、dist、out等目录后重新打包,问题依旧

希望有经验的朋友能给我一些排查方向或者解决方案,谢谢大家!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 14:08:01