Electron使用电子创建MSI安装程序
我设法为使用电子构建器的windows创建一个.exe安装程序,我创建了2个package.json,正如文档中指出的那样:
https://github.com/electron-userland/electron-builder。
我结束了一个工作的.exe文件夹
"dist:win64": "./node_modules/.bin/build --platform win32 --arch x64"
我的主package.json的构建部分是
"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安装程序使用电子生成器将内容放入Program文件夹中。 唯一一个可以工作的项目是https://github.com/theodo/electron-boilerplate,但它使用了以前版本的电子构建器。
在电子文档设置noMsi
为false,应该做的伎俩......
Should Squirrel.Windows create an MSI installer?
我还没有得到这个工作(但),但我的理解是,这是相反的(可怕的命名)。
"noMsi": false // will make an MSI
"noMsi": true // will NOT make an MSI
正如最新的电子制造商版本的wiki中所述,您必须在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"
}
}
如果您在nsis配置( oneClick
)中禁用一次单击,则会提示用户是执行单用户安装(在AppData
)还是在每台计算机上(在Program Files
)。
如果你不想给他们选择,你可以设置perMachine
为false,这将只允许安装到程序文件中:
"nsis": {
"oneClick": false,
"perMachine": false
},
我会亲自离开他们的选择,因为他们仍然可以安装没有管理员权限!
在最新版本的electron-builder
,还有一个allowToChangeInstallationDirectory
选项,允许用户选择任何安装位置。