-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MSI #723
Comments
Please see #660 (comment)
No. 100 lines of code and electron-builder will build msi for you. BUT! I am totally unaware of MSI. Can you help and prepare PR to wrap NSIS installer as MSI? |
@DavidDurman Have you found solution? |
I'm totally clueless myself. I just know that one of my enterprise customers doesn't let their people install software on their machines, and want an MSI so they can install it centrally. That EXE->MSI converter he references on the other thread might be a viable workaround for me. It's a drag to have to use Windows, but only one customer is asking for this, and I don't build new installers very often anyway. |
@develar I ended up using the NSIS build and wrapped it using the exemsi wrapper: http://www.exemsi.com. It works just fine for me. |
@naderhen and others — I don't have time to implement it for now. And because it is MS target that will use tool from MS — I need vomit bag to work on this. No plans for now to implement this target. If you want to help — I can guide you and help to write new target for electron-builder (use slack direct messages). |
Not necessarily. There is always WiX Toolset (http://wixtoolset.org/ or https://github.com/wixtoolset/ ) |
I have touched it. Please kill me. Kill me. I don't want to remember about this experience. People in a psychiatric hospital will be your best friends after using it. |
this feature would be a killer! |
@DavidDurman Does auto update work when you wrap NSIS build in http://www.exemsi.com? |
I would like to know as well |
Reopened - there is a chance that I will fix it in a near future. |
@develar Thank you. :) |
There is no choice. I am not insane to use MS tool to build MSI. I doubt that exemsi company will offer us acceptable for electron builders users conditions. Also, exemsi requires net. So, only wix. |
@develar hmm okay. Also coming to my question, when you wrap nsis build into msi installer via wix, would the auto updater(https://www.electron.build/auto-update) work out of the box? The reason I am asking is, if auto update works out of the box, I can go ahead and spend some time on the wix installer. |
@Ajeey In general, should work. But because it is Windows — need to test to be sure. |
Recently corporate clients started to look for cross platform solutions. And 90% of them are MS based shops. I think there is huge potential to support Windows. |
It will be useful if you can name some reasons why MSI is required. |
I do not think it is required, it would be nice to have that feature but not a show stopper. |
As @okonon said, most medium to large sized corporate environments have their own software installation & distribution policies. MSI is generally easier to work with when deploying to a large number of targets. And yes, it's not required, but nice to have. For most people managing the software distribution, they're already familiar with how MSI works. As opposed to working with a new installer, which would involve things like:
|
Since I started this thread, please pardon the slight non-sequitur. I recently had a customer who needed one of our apps to run on a Surface Hub. That's a big locked-down touchscreen Windows 10 thing that will only run pure Windows 10 apps. Turns out that an Electron app converted to Windows Store using the Universal Converter thingy does not qualify. So in the end, I reworked that particular app to eliminate any Node dependencies, and added a few Windows-specific javascript API calls in their place. There are two ways to do it. You can either host your app on the web and put a little wrapper in the store, or you can bundle all the HTML5/CSS3/JS together and put the thing in the store en-masse (I did the latter). The end result is a nifty little installer that enterprises that have moved to Windows 10 will probably like better than an MSI. It's not a direct solution to this problem, but it's a simple solution when your app (like mine) is 99% web app anyway. |
Target mostly done (per-machine one-click installer and assisted installer), but not yet production ready (icons (f*** WiX, why icon cannot be extracted smartly as NSIS does?)) and shortcuts are not created). Therefore, if you need MSI for your app, please comment in this issue what exactly do you need: one-click or assisted, per-user or per-machine, with eual or without eula. |
@develar one-click, per-machine & without eula :) |
MSI one-click, per-machine & without eula supported. You can build on macOS without installing any additional tools, but only uncompressed and unsigned MSI. On Linux the same as on macOS (but not tested). On Windows you can build MSI without installing any additional tools. |
Now (19.42.1) MSI is a single package authored. It means that MSI can be installed or per-user or per-machine. By default per-user. If need, unset
|
I tried numerous times to avoid "WiX sucks" but... yeach. Future of "assisted installers" is frozen. Bloody WiX cannot correctly set If you are WiX expert — set
and investigate why, why, why, why,
doesn't work. See |
Is electron-updater and S3 publishing supported with msi option? |
@raquila according to the release notes when this was implemented, auto-update was not supported (see notes under 19.41.0): https://github.com/electron-userland/electron-builder/releases?after=v19.42.2 |
I have been investigating getting auto-update to work with MSIs, there doesn't seem to be any technical blocker to this if you're using a per-user installation. Essentially I created an MsiUpdater that runs Then the MsiTarget needs to be updated to publish the update info by specifying I'm in the process of forking and creating a pull request for this - @develar before I spend time doing this, is there another reason why this hasn't been done? |
MSI for companies to do massive deployments and central management. MSI is dead and bad. No reasons to use it if you can use NSIS. |
Quick question about the MSI installer - This uninstall perfectly work in case of NSIS target. Use case -
|
What if that's your exact use case? This is an extremely ignorant and dismissive answer that doesn't solve any problems. |
Electron builder with |
Does msi package support auto updates too? |
@develar (#723 (comment)) I fixed it! PR #6550. That PR is substantially different though, so here's what was happening with the current assisted installer. The minimal fix would have been to add Setting ALLUSERS=2 again was necessary because it was getting changed by Windows Installer (🤷♂️), but the tricky one to figure out was changing the dialogs to show after (not sure exactly which action, but I think) CostFinalize instead of being the first action. With the dialogs happening too early, it was almost working. The desktop shortcut was being installed per-machine, but the app was still installed per-user. This made some sense, after looking at the logs: APPLICATIONFOLDER was set client-side to the per-user location and was not getting updated after ALLUSERS/MSIINSTALLPERUSER changed, and being a public property was passed to server-side. DesktopFolder, being a private property, was not passed from client to server and so was being set correctly server-side based on the new ALLUSERS/MSIINSTALLPERUSER values. So… possible solution: change APPLICATIONFOLDER to AppFolder (i.e. make it private). It works! But now the installation folder can't be customized from the CLI ( Eventually I tried changing the InstallUISequence based on Microsoft's example (and suggested sequence), and it started working. APPLICATIONFOLDER was getting reset client-side after changing ALLUSERS/MSIINSTALLPERUSER, so it was the already correct value when passed to the server. |
A customer is asking for an MSI installer, instead of NSIS. I see that Squirrel can do that, but that means adding support for Squirrel to my app which looks like a major ordeal. (For Windows; adding it for Mac looks trivial.) Is there another option someone can recommend for making a MSI installer? I found msi-packager which relies on another thing msi-tools. Is that a good place to start? Any other recommendations? My build environment is Mac, so if I can avoid having to use Windows to do this, that would be a huge plus.
The text was updated successfully, but these errors were encountered: