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
相关产品推荐
相关产品推荐

