使用Electron builder创建MSI安装程序
我使用electron builder为windows创建了一个.exe安装程序,我创建了2 package.json,正如文档中指出的: 最后我有了一个文件夹,里面有一个正在运行的.exe mymainpackage.json的build部分是使用Electron builder创建MSI安装程序,electron,electron-builder,Electron,Electron Builder,我使用electron builder为windows创建了一个.exe安装程序,我创建了2 package.json,正如文档中指出的: 最后我有了一个文件夹,里面有一个正在运行的.exe mymainpackage.json的build部分是 "build": { "app-bundle-id": "org.test.mytest", "app-category-type": "public.app-category.graphics-design", "osx"
"build": {
"app-bundle-id": "org.test.mytest",
"app-category-type": "public.app-category.graphics-design",
"osx": {
"contents": [
{
"x": 410,
"y": 150,
"type": "link",
"path": "/Applications"
},
{
"x": 130,
"y": 150,
"type": "file"
}
]
},
"win": {
"title": "My awesome app",
"version": "2.28.999.1",
"noMsi": false,
"authors": "Author"
}
}
一切工作正常,我有和.exe安装程序,但没有办法有一个.msi安装程序,把内容在程序文件目录
相反,我最终在C:\Users\UserHome\AppData\Local\electron文件夹中安装了一个,安装程序如下所示
有没有办法让一个真正的.msi安装程序使用electron builder将内容放在程序文件文件夹中。唯一有效的项目是这个项目,但它使用的是以前版本的electron builder
在电子文档中将noMsi
设置为false时,应执行以下操作
Should Squirrel.Windows create an MSI installer?
我也没有让它起作用,但我的理解是,它是相反的(糟糕的命名) 如中所述,您必须使用
build.win
中的msi
选项:
"build": {
"app-bundle-id": "org.test.mytest",
"app-category-type": "public.app-category.graphics-design",
...
,
"win": {
"title": "My awesome app",
"version": "2.28.999.1",
"msi": true,
"authors": "Author"
}
}
您实际上不需要安装MSI就可以将应用程序安装到
程序文件中
如果在nsis配置中禁用一键(oneClick
),系统将提示用户是执行单用户安装(在AppData
)还是每台机器安装(在程序文件中)
如果不想让他们选择,可以将perMachine
设置为false,这将只允许安装到程序文件中:
"nsis": {
"oneClick": false,
"perMachine": false
},
我个人会留下他们的选择,因为他们仍然可以安装没有管理员权限
在最新版本的electron builder
中,还有一个allowToChangeInstallationDirectory
选项,允许用户选择任何安装位置。如果您只需要一个exe格式的安装程序(我不知道msi),您可以使用electron builder将exe解包到一个目录中。请访问查看文档。文档非常直截了当。使用exe获得解包文件夹后,使用“Inno Setup Compiler”创建外观专业的安装程序。一旦你掌握了窍门,整个过程只需要5分钟。我通过观察目标就知道了。这样做
"win": {
"target": [
"msi"
]
//your code here
},
您可以使用“electron wix msi”这个软件包来完成此任务。
但首先你需要用Electron packager或Electron Builder打包项目的资源,然后将win Unpackage文件夹的路径指定为APP-DIR是的,我也明白这一点,但该选项不适用于我。我在执行的脚本中看到了不同的结果——不管是否有msi参数,但最终没有msi安装程序……我收到了几个错误:Package“electron”只允许在“devdependences”中使用。请将其从package.json中的“依赖项”部分删除。
为什么我不能将electron作为依赖项?这不是违背了全部目的吗?无论如何,我删除了它,并再次尝试warn dist
,但这次我得到了错误:无效的配置对象。electron builder 22.3.2已使用与API架构不匹配的配置对象进行初始化。
hello?你能帮我吗?看来你对elecron builder的配置不好。请检查或查找错误,谢谢。我同时想出了怎么做。但是,我有一个问题,桌面快捷方式图标显示正确。你介意看看我的@oldboy哇!坚持“Electron”是基于Chromium引擎和Node.js环境创建独立于平台的桌面应用程序的开发工具。它不是生产依赖关系,而是开发人员依赖关系。在分发过程中,您的软件不应包含electron本身!因此,在安装“electron”时,请使用以下命令:“npm install electron--save dev”。否则,整个electron环境(>150MB)将不必要地包含在您的安装程序中!!!这就是错误消息告诉您的!从wix创建后,msi不会显示在“添加或删除程序”列表中。
"nsis": {
"oneClick": false,
"perMachine": false
},
"win": {
"target": [
"msi"
]
//your code here
},