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



我目前正在使用相同的源代码处理两个ReactJsElectron项目。为了避免我的说法令人困惑,我在同一源代码中获得了Product AProduct B,但两者的区别在于徽标和配置。

当我使用electron-builder生成可执行文件时,它实际上是两个不同的可执行文件,当我安装两个可执行文件后,它确实是两个不一样的应用程序。但问题是,当我打开这两个应用程序时,它会覆盖以前的安装。

我确实假设更改我的electron.js上的setAppUserModelIdappIdname以及package.json中的其他CCD_6会诱使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,当我启动CCD时,它会显示Product B(这没有错(。

预期:

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

问题:

我是错误地配置了我的项目,还是遗漏了一些内容?

通过将appId移动到";构建";对外界来说,问题解决了。

您应该修改package.json"name":"产品A";或";产品B";

我还没有一个好的解决方案。更改appId的位置无效。

最新更新