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

How to allow two different installation of executables from the same source code in Windows machine

我目前正在使用相同的源代码开发两个 ReactJs Electron 项目。为了防止我的陈述令人困惑,我在同一源代码上得到了 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.

问题:

我是不是错误地配置了我的项目,还是我在这里遗漏了什么?

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

你应该修改 package.json "name": "ProductS" or "Product'S"