【发布时间】:2020-09-07 11:51:46
【问题描述】:
我们正在尝试以不同的名称构建我们的 Electron 应用程序,使用不同的 appId,以便我们可以与原始应用程序一起运行它 - 但它总是会触发 Electrons 'second-instance' - 至少在我所在的 Windows 上米测试。
我们需要做什么才能让 Electron 成为两个完全独立的应用程序?
【问题讨论】:
标签: node.js electron electron-builder
我们正在尝试以不同的名称构建我们的 Electron 应用程序,使用不同的 appId,以便我们可以与原始应用程序一起运行它 - 但它总是会触发 Electrons 'second-instance' - 至少在我所在的 Windows 上米测试。
我们需要做什么才能让 Electron 成为两个完全独立的应用程序?
【问题讨论】:
标签: node.js electron electron-builder
我们在使用electron-packager 时遇到了同样的问题。通过appname 更改可执行文件名称是不够的,但在package.json 中更改name 也可以。
我们在打包后使用构建系统中的dot-json 来更改它。见this answer about using dot-json from npm。
关于什么用于身份的问题:据我所知,电子在%USER_DATA_DIR%\%APPNAME_FROM_PROJECT_JSON%\lockfile 中使用了一个锁文件。在我的机器上,一个名为electron-shell 的应用程序变成了C:\Users\UserName\AppData\Roaming\electron-shell\lockfile。可以使用 Sysinternals Process-Explorer 进行查找。
【讨论】:
electron-builder 并没有为我做这件事,即使你认为它会。请问,你是在什么操作系统上测试的?
name 中的 resources\app\package.json。
requestSingleInstanceLock身份的描述
我们为解决这个问题所做的就是将 nsis.guid 自己设置为预定义的 UUIDv5 字符串。
您可以通过手动设置GUID 重新打包应用程序而无需触发'second-instance' - 至少在Windows 上是这样。
更改appId 或name 应该会更改此according to the docs。它确实改变了 GUID,正如通过 Windows 注册表 (regedit) 确认的那样,但这还不够。
【讨论】: