electron 如何允许两个不同的安装的可执行文件从相同的源代码在Windows机器

oaxa6hgo  于 2023-06-20  发布在  Electron
关注(0)|答案(3)|浏览(265)

我目前正在使用相同的源代码进行两个ReactJsElectron项目。如果我的陈述令人困惑,我在同一个源代码上得到了Product AProduct B,但两者之间的差异是徽标和配置。
当我使用electron-builder生成可执行文件时,它确实是两个不同的可执行文件,当我安装这两个可执行文件时,它确实是两个不同的应用程序。但问题是,当我打开这两个应用程序,它覆盖了以前的安装。
我确实假设在我的electron.jsappIdname以及package.json中的其他项目上更改setAppUserModelId会诱使Windows认为这两个项目是不同的,但最终它并没有。

//electron.js

app.on("ready", () => {
  createWindow();
  if (process.platform === "win32") {
    app.setAppUserModelId("com.product.a"); //similar thing goes to Product B
  }
});
//package.json

"build": {
   "appId": "com.product.a",
   "win": {
     "target": "NSIS",
     "icon": "build/logo.ico"
   }
},

问题:

我先安装productA.exe,然后安装productB.exe,两个应用程序确实显示为单独的应用程序,但当我启动Product A时,它显示Product B,当我启动Product B时,它显示Product B(这没有错)。

期望:

我在这里试图实现的是,当我安装productA.exe时,它显示Product A,当我安装productB.exe时,它显示Product B

问题:

是我的项目配置错误还是我遗漏了什么?

oxalkeyp

oxalkeyp1#

通过将“build”内部的appId移到外部来重构package.json后,问题就解决了。

3yhwsihp

3yhwsihp2#

你应该修改package.json“name”:“产品A”或“产品B”

qgelzfjb

qgelzfjb3#

我还没有一个好的办法来解决这个问题。更改appId的位置不起作用。

相关问题