如何允许在 Windows 机器中从同一源代码安装两个不同的可执行文件
How to allow two different installation of executables from the same source code in Windows machine
我目前正在使用相同的源代码开发两个 ReactJs
Electron
项目。为了防止我的陈述令人困惑,我在同一源代码上得到了 Product A
和 Product B
,但两者之间的区别在于徽标和配置。
当我使用 electron-builder
生成可执行文件时,它确实作为两个不同的可执行文件出现,当我安装这两个可执行文件时,它确实显示为两个不同的应用程序。但问题是,当我打开这两个应用程序时,它会覆盖以前的安装。
我确实假设更改 electron.js
和 appId
、name
以及 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"
我目前正在使用相同的源代码开发两个 ReactJs
Electron
项目。为了防止我的陈述令人困惑,我在同一源代码上得到了 Product A
和 Product B
,但两者之间的区别在于徽标和配置。
当我使用 electron-builder
生成可执行文件时,它确实作为两个不同的可执行文件出现,当我安装这两个可执行文件时,它确实显示为两个不同的应用程序。但问题是,当我打开这两个应用程序时,它会覆盖以前的安装。
我确实假设更改 electron.js
和 appId
、name
以及 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"