electron设置新图标不生效,打包运行后,桌面的图标显示默认图标?

新手上路,请多包涵

electron设置新图标,打包运行后,桌面的图标显示默认图标
其它位置的图标都能替换,只是桌面显示的不行

1718671609993.png

环境:
win10
nodejs20

  1. 初始化代码
    https://cn.electron-vite.org/
  2. electron-builder.yml

    # 应用的ID,用于唯一标识应用
    appId: com.hhh.security.lock
    
    # 产品名称,用于显示在安装程序和开始菜单等地方
    productName: HHH安全锁
    
    # 指定构建资源和输出目录
    directories:
      # 构建资源目录,存放图标、背景等资源文件
      buildResources: build
    
    # 指定要包含在应用程序包中的文件和文件夹
    files:
      # 排除 .vscode 目录下的所有文件
      - '!**/.vscode/*'
      # 排除 src 目录下的所有文件
      - '!src/*'
      # 排除配置文件
      - '!electron.vite.config.{js,ts,mjs,cjs}'
      - '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
      # 排除环境变量文件和 npm 配置文件
      - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
    
    # 指定从asar归档中解压的文件或文件夹
    asarUnpack:
      # 解压 resources 目录下的所有内容
      - resources/**
    
    # Windows 特定配置
    win:
      # 指定生成的安装程序类型,这里使用 NSIS
      target:
     - nsis
      # 是否对可执行文件进行签名和编辑
      signAndEditExecutable: false
      # 请求的执行级别,highestAvailable 使用最高可用权限,requireAdministrator 需要管理员权限
      requestedExecutionLevel: requireAdministrator
      # 可执行文件名称
      executableName: HHH安全锁
      icon: build/icon.ico
    
    # NSIS 安装程序配置
    nsis:
      # 安装程序的构建物名称,${name} 和 ${version} 是变量
      artifactName: ${name}-${version}-setup.${ext}
      # 创建桌面快捷方式的名称
      shortcutName: ${productName}
      # 卸载时显示的名称
      uninstallDisplayName: ${productName}
      # 是否总是创建桌面快捷方式
      createDesktopShortcut: always
      # 是否是一键安装
      oneClick: false
      # 是否允许用户更改安装目录
      allowToChangeInstallationDirectory: true
      # 是否在开始菜单创建快捷方式
      createStartMenuShortcut: true
      # 是否为所有用户安装
      perMachine: true
      # 允许提升权限
      allowElevation: true
    
    # macOS 特定配置
    mac:
      # 继承的权限文件,用于MacOS的权限请求
      entitlementsInherit: build/entitlements.mac.plist
      # 扩展信息,用于App的权限请求
      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 安装程序配置(macOS)
    dmg:
      # DMG文件的构建物名称
      artifactName: ${name}-${version}.${ext}
    
    # Linux 特定配置
    linux:
      # 指定生成的目标格式,AppImage、snap、deb
      target:
     - AppImage
     - snap
     - deb
      # 维护者的邮箱,通常用于Linux软件包
      maintainer: electronjs.org
      # 应用的类别
      category: Utility
    
    # AppImage 配置(Linux)
    appImage:
      # AppImage文件的构建物名称
      artifactName: ${name}-${version}.${ext}
    
    # 是否重新编译npm包
    npmRebuild: false
    
    # 发布配置
    publish:
      # 发布提供者,generic为通用
      provider: generic
      # 发布地址
      url: http://192.168.0.210:38001/
    
  3. 图标
    image.png
  4. 试过清理系统图标缓存,不生效
    https://developer.aliyun.com/article/1261525
  5. 试过重命名app的应用信息,不生效

image.png
image.png

阅读 3.9k
avatarAI BotBETA

对于你提出的关于 Electron 设置新图标不生效的问题,首先需要确认的是你已经正确设置了图标文件,并且在 electron-builder.yml 配置文件中也指定了正确的图标路径。

从你提供的信息来看,你已经将图标放在了 build/icon.ico 路径下,并且在 electron-builder.yml 中通过 icon: build/icon.ico 指定了这个路径。这看起来是正确的设置方式。

然而,你提到在桌面上的图标仍然显示默认图标,这可能是因为操作系统的图标缓存问题。虽然你提到已经尝试清理了系统的图标缓存,但有时候可能需要更彻底的清理或者重启计算机来确保缓存被完全刷新。

此外,还有一些可能导致图标不生效的原因和解决方案:

  1. 确保图标文件没有损坏:尝试使用其他图标文件替换当前的图标文件,看是否能够正常显示。
  2. 检查 Electron 版本:确保你使用的 Electron 版本没有已知的图标显示问题。有时候,升级到最新版本的 Electron 可能能够解决一些与图标相关的问题。
  3. 检查打包工具:如果你使用的是 electron-packager 或其他打包工具,确保它们也正确配置了图标路径。
  4. 检查系统权限:在某些情况下,操作系统可能由于权限问题而无法正确显示图标。确保你的应用程序有足够的权限来更改系统设置。
  5. 尝试手动设置图标:在 Electron 的主进程中,你可以尝试使用 BrowserWindowsetIcon 方法来手动设置窗口的图标。虽然这不会直接影响桌面上的快捷方式图标,但它可以作为一个额外的检查点,确保图标文件本身没有问题。

如果以上方法都无法解决问题,建议检查 Electron 和 electron-builder 的官方文档和社区论坛,看看是否有其他人遇到了类似的问题,并找到了解决方案。同时,也可以考虑在 Stack Overflow 或其他开发者社区中提问,寻求更专业的帮助。

1 个回答
新手上路,请多包涵

遇到过同样的问题,
怀疑是图标问题,修改图标大小不生效,各种生成ico的软件试了也不生效。
网上说的清理各种缓存也不生效
尝试不同的electron-builder版本不生效
最后发现,修改输出目录,或者修改输出应用的名字。图标就生效了,
尝试修改回旧的名字和目录,情况依旧,怀疑是某方面的缓存导致的,没有找到对应的解决方案,最后修改了输出目录的名字先用着

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏