Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between an EXE and a MSI installer?

I've created an installation package using Installaware and generated an EXE and a MSI. The EXE is 3.1MB and the MSI is only 265K. Why is there such a big difference in size?

like image 836
MrB Avatar asked Oct 07 '10 22:10

MrB


People also ask

What is better EXE or MSI installer?

The main difference between the two extensions is their purpose. EXE is used mainly to indicate that the file is an executable one. In comparison, MSI indicates that the file is a Windows installer. While an MSI is used only with installers, this is not the case with EXE.

What is difference between installer and MSI installer?

The main difference between MSI and EXE is that the MSI is an Installer database that comprises a collection of installer files and all the data needed to install, update, modify or get rid of certain software on your computer whereas EXE files can be used to install and run application software and also has the ...

When should I use MSI installer?

The . MSI file extension stands for Microsoft Software Installer. It is a Windows Installer format that uses Microsoft's Windows Installer service to configure installer packages, such as Windows applications or update packages. The MSI file extension is used to install software on Windows operating systems.

What is MSI installer exe?

MsiExec.exe is the executable program of the Windows Installer used to interpret installation packages and install products on target systems. After you build your release, you can install your Windows Installer package (.


2 Answers

UPDATE: Some resources with information on how to handle various types of setup.exe files:

  • Extract MSI from EXE
  • Uninstall and Install App on my Computer silently

MSI File: An MSI file can only be launched by msiexec.exe - The Windows Installer Engine. An MSI file is a Windows Installer database file capable of installing software. It requires the right version of the Windows Installer Engine Runtime at the very minimum to be installable. Most systems are up to date with the latest engine versions since it comes down via Windows Update.

EXE File: The EXE file you generate is a self-extracting launcher application containing both the MSI itself as well as various runtime requirements that the setup might have. Various components an EXE file might include:

  • The version of the Windows Installer Engine Runtime the MSI requires (current version 5.0). These days this runtime should be installed by Windows Update, and your setup should just verify it is present.
  • Scripting runtimes required by custom actions in the MSI (Installscript for Installshield).
  • The .NET runtime version required by the application. I would prefer using Windows Update for this as well, but if your application is cutting edge, you might want to include the required engine. Can you set it to download rather than embedding? You can also supply it as a separate download.
  • Logo files and splash screens, potentially in different languages for multi-lingual setups.
  • Several other components are possible.

Legacy Setup.exe Installer: Note that an EXE file can also be a non-MSI installer In other words an old-style installer not based on the Microsoft MSI format (which is a MS-SQL database stored in an office-style binary file), but rather an installation script of various formats such as Wise Script, Installscript, Inno Setup, NSIS, etc... However, in this case the question was about the difference in size between the EXE and the MSI coming out of an InstallAware build, and then the difference is the runtimes explained above.

like image 200
Stein Åsmul Avatar answered Oct 25 '22 18:10

Stein Åsmul


The difference is : MSI package contains your files + install script, and the actual installation is run by the Microsoft Installer which is a part of Windows, and it takes care of displaying Windows, logging messages etc. On the other hand, your EXE installer is holding files + actual program logic to run the install itself, being responsible for pretty much everything, hence the difference.

like image 22
Jas Avatar answered Oct 25 '22 18:10

Jas