I managed to create an .exe installer for windows using electron builder, I create 2 package.json as pointed out in the docs :
https://github.com/electron-userland/elec
I haven't gotten this to work either (yet), but my understanding is that it's the opposite (terrible naming).
"noMsi": false // will make an MSI
"noMsi": true // will NOT make an MSI
as stated in the wiki of latest electron builder release you have to use the msi
option within build.win
:
"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"
}
}
You don't actually need an MSI installed to get your app installed into Program Files
.
If you disable one click in the nsis config (oneClick
), the user is prompted whether to do the single user install (in AppData
) or per machine (in Program Files
).
If you don't want to give them the choice, you can set perMachine
to false which will only allow install into Program Files:
"nsis": {
"oneClick": false,
"perMachine": false
},
I would personally leave them the option as they can still install without admin rights!
In the latest version of electron-builder
there is also a allowToChangeInstallationDirectory
option which allows the user to choose any install location.
I figured it out by looking at the target. do this
"win": {
"target": [
"msi"
]
//your code here
},
If all you want is an installer in exe format (I don't know about msi) you can use electron-builder to build the exe unpacked to a directory. Check out the documentation at http://npmjs.org/package/electron-builder. The documentation is pretty straight forward. After you obtain the unpacked folder with your exe , use "Inno Setup Compiler" to create a professional looking installer. Once you get the hang of it , it just takes like 5 minutes to do the whole thing.