返回

Electron 应用程序独立安装:如何解决桌面快捷方式合并问题?

windows

Electron 应用程序独立安装:解决桌面快捷方式合并问题

问题概述

使用 Electron 构建的应用程序在 Windows 11 中安装时,可能会遇到桌面快捷方式合并的问题。当安装第二个应用程序时,第一个应用程序的快捷方式会被替换,导致无法通过快捷方式启动。

问题根源

该问题通常源于安装程序将应用程序设置为全机安装。即使在 electron-builder.yaml 文件中将 perMachine 选项设置为 false,误解 oneClickperMachine 设置也可能导致这个问题。

解决方案

要解决此问题,请遵循以下步骤:

  1. 检查 nsis 配置中的 perMachine 设置
    确保 perMachine 选项已正确设置为 false

  2. 检查 nsis 配置中的 oneClick 设置
    oneClick 选项设置为 false,以禁用单击安装模式。

  3. 为每个应用程序使用不同的产品名称
    electron-builder.yaml 文件中,为每个应用程序设置不同的 productName

  4. 使用不同的快捷方式名称
    nsis 配置中,为每个应用程序设置不同的 shortcutName

  5. 手动创建桌面快捷方式
    如果无法通过安装程序创建快捷方式,可以手动创建。右键单击桌面,选择“新建”>“快捷方式”,然后输入应用程序的可执行文件路径。

示例配置

以下是更新后的 electron-builder.yaml 文件,包含上述修改:

---
"$schema": https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json
appId: com.electron.{productName}
productName: Application1
copyright: Copyright © 2024 ${author}
asar: true
directories:
  output: release/${version}
  buildResources: resources
files:
  - dist-electron
  - dist
electronLanguages:
  - en-US
  - it
win:
  target:
  - target: nsis
    arch:
    - x64
  artifactName: ${productName}-${version}-setup.${ext}
nsis:
  oneClick: false
  perMachine: false
  allowToChangeInstallationDirectory: true
  deleteAppDataOnUninstall: false
  shortcutName: Application1
  uninstallDisplayName: Application1
  createDesktopShortcut: always
---
"$schema": https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json
appId: com.electron.{productName}
productName: Application2
copyright: Copyright © 2024 ${author}
asar: true
directories:
  output: release/${version}
  buildResources: resources
files:
  - dist-electron
  - dist
electronLanguages:
  - en-US
  - it
win:
  target:
  - target: nsis
    arch:
    - x64
  artifactName: ${productName}-${version}-setup.${ext}
nsis:
  oneClick: false
  perMachine: false
  allowToChangeInstallationDirectory: true
  deleteAppDataOnUninstall: false
  shortcutName: Application2
  uninstallDisplayName: Application2
  createDesktopShortcut: always

结论

通过应用这些修改,你可以确保每个 Electron 应用程序都能独立安装,并拥有自己的桌面快捷方式。这将改善应用程序管理和用户体验。

常见问题解答

1. 为什么我的快捷方式仍然被合并?

确保已正确遵循上述步骤。如果问题仍然存在,请检查 nsis 脚本并确保 perMachine 选项已设置为 false,并且 oneClick 选项已设置为 false

2. 我该如何在不创建快捷方式的情况下安装应用程序?

nsis 配置中,将 createDesktopShortcut 选项设置为 false

3. 我可以在安装后手动创建快捷方式吗?

是的,右键单击桌面,选择“新建”>“快捷方式”,然后输入应用程序的可执行文件路径。

4. 不同应用程序的 nsis 脚本可以合并吗?

不建议合并 nsis 脚本。为了保持应用程序的独立性,请为每个应用程序使用单独的 nsis 脚本。

5. 如果我对 nsis 配置不熟悉,我该怎么办?

建议参考 Electron-Builder 文档,它提供了有关 nsis 配置选项的详细信息。