Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do so many programs have both a setup.exe and a setup.msi?

I have always wondered about this. So many application setups have a zip file that you unzip, and in it are a bunch of files, among other things an exe and an msi. What is the difference? They are often even about the same size. I am never really sure which one to execute, sometimes I do the exe and sometimes the msi, and it usually works with either one. But does one of them do anything that the other doesn't do? And if not, isn't it kind of a waste having two files that does the same thing? Especially when thinking about download size, etc...

Not sure if this should be here or on ServerFault, or maybe neither, but I figured since developers usually are the ones creating setup files, then developers might know why this is like it is =)

like image 220
Svish Avatar asked May 24 '09 01:05

Svish


People also ask

What is the difference between setup exe and MSI?

MSI is an installer file which installs your program on the executing system. Setup.exe is an application (executable file) which has msi file(s) as its one of the resources. Executing Setup.exe will in turn execute msi (the installer) which writes your application to the system.

Is exe or MSI installer better?

There is no real advantage of .exe over . msi other than if you use Winrar (or some others), you can usually extract all files from a . msi file, without needing to install anything.

Can you change msi to exe?

You can compress your msi into .exe with all supported files used for extraction at the time of installation.


2 Answers

In the case where you have both exe and the msi the exe is just a loader for the msi. If you have an installation supporting multiple languages then the exe applies a language transform (mst) on the msi before installing.

You can consider the exe as a wrapper around the msi. The msi file may or may not be given separately. The reason why people give the msi file too is to facilitate a group policy installation (in a Windows Active Directory infrastructure) as you can only push down installations of msi files and not exes.

like image 109
Prashast Avatar answered Nov 08 '22 08:11

Prashast


The setup.exe is a wrapper for the MSI, but it is not only a wrapper.

  • The setup.exe can rely on a setup.ini to define parameters
  • The setup.exe checks for the Windows Installer (a MSI cannot be installed otherwise)
  • The setup.exe can check for frameworks, like the .NET framework. The developer can pick one of those defined in C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages (for Visual Studio 2008). If it is lacking, it will try to download it from http://www.microsoft.com/
  • The setup.exe can be reconfigured with msistuff.exe
like image 43
rds Avatar answered Nov 08 '22 08:11

rds