3

In node.js website is possible to download both .exe or .msi package for Windows, but .exe seems to simply open a command prompt shell.

What is difference between two packages, and how to choose between them?

I did not find this answer anywhere.

Ben Fortune
  • 31,623
  • 10
  • 79
  • 80
Luca Detomi
  • 5,564
  • 7
  • 52
  • 77
  • 1
    One is an installer(.msi) and one is a binary(.exe). The installer installs the binary along with some other things such as NPM and adds it to your PATH. – Ben Fortune Feb 18 '15 at 13:36
  • I thought about `.exe` "_include_" `.msi`, like describe [here](http://stackoverflow.com/questions/1789530/what-are-the-specific-differences-between-msi-and-setup-exe-file). Instead, I obtain only a shell without any installation process, launching `.exe` – Luca Detomi Feb 18 '15 at 13:38
  • That's because the `.exe` is a binary and not an installer... – Ben Fortune Feb 18 '15 at 13:39
  • I prefer neither - if I have it installed somewhere I just create a zip version for Windows and adjust the paths/variables. – bhantol Nov 04 '16 at 18:17

1 Answers1

0

Most of the times the .msi package is just a wrapper for the .exe used for deployment via enterprise infrastructure like active directory.

There are diffrences in the internal structures boiling down to the point, that .msiis the file format for windows installations where .exe can just be any executable.

To be more precise here - the .msi takes advatege of the WindowsInstaller API where an .exe usually don't.

Further reading Windows application installer frameworks

Community
  • 1
  • 1
Maximilian Kindshofer
  • 2,753
  • 3
  • 22
  • 37
  • I'm sorry but in [this topic](http://stackoverflow.com/questions/1789530/what-are-the-specific-differences-between-msi-and-setup-exe-file) is written: "_A setup.exe may either be a bootstrapper or a non-msi installer. A non-msi installer will extract the installation resources from itself and manage their installation directly. A bootstrapper will contain an MSI instead of individual files. In this case, the setup.exe will call Windows Installer to install the MSI._" It seems the opposite concept. Am I wrong? – Luca Detomi Feb 18 '15 at 13:42
  • 1
    @LucaDetomi They're talking about setup executable files, not executable files in general. The node `.exe` file is NOT a setup file, it's a compiled Windows binary. – Ben Fortune Feb 18 '15 at 13:45
  • 1
    @LucaDetomi You can have a .exe calling a msi or the underlaying system calls. The point is that .msi relies on the Microsoft Host and makes mostly api calls where the .exe is handling the file copy and the registration by itself. You can Imagen an msi file more like a script than an acctual executabel – Maximilian Kindshofer Feb 18 '15 at 13:53
  • Ok, so.... what to choose for this particular behaviour in Node.js? You explained me differences, but in which case I should choose node.js msi installer, and otherwise in which one I should choose exe package? – Luca Detomi Feb 18 '15 at 14:00
  • Well If you intend to have node.js rolled out on diffrent workstations you would choose to get the .msi and if you need change some settings inside the .msi file. For a single install you typically choose the exe package, but the msi file would work just as well – Maximilian Kindshofer Feb 18 '15 at 14:04
  • I need to downgrade the node version. I installed latest (at this time) 6.6.0 and it has problems with the Webstorm. My colleagues are using 5.x and no problems with them. I found all versions on the node web site, but they are all *.exe. If I uninstall the current node... how do I install the older version, if it is coming only in the *.exe format? – Amiga500 Sep 29 '16 at 07:47