Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.Net Installer - Diff between .exe and .msi

I am deploying my application using the installer that i create using the Setup and Deployment project in visual studio. When i build the setup project i get a .exe and a .msi file.

I would like to know the difference between them.

I noticed that the .exe cannot work without the .msi, but the reverse is not so.

like image 685
Sidharth Avatar asked Dec 13 '10 13:12

Sidharth


2 Answers

The exe file is a bootstrapper that installs any required prerequisites and then calls your setup, which is the msi file.

You can start the setup by itself, running the msi file, but it will fail if the required prerequisites are not installed (possible examples: .Net framework, VC++ redistributable, newer version of MSI, etc.)

It fails when you try to run the setup with the bootstrapper (exe file) and your msi is missing, because basically it will install all the prerequisites and then it will try to start your installer ( the msi file). If the file is not there, it doesn't have what to start.

Depending on your application needs, a similar technique would be to use Merge Modules for your application prerequisites. A merge module would basically load all the required components into your main installer so you'll end up just with one MSI file that has everything inside. You have to be sure that every component that you use has a merge module available, if it doesn't you'll have to use a bootstrapper.

like image 133
Adrian Fâciu Avatar answered Oct 17 '22 16:10

Adrian Fâciu


Adrian is correct. This might add some more info.

http://www.ghacks.net/2009/03/23/msi-or-exe-setup/

like image 38
Jimmie Clark Avatar answered Oct 17 '22 15:10

Jimmie Clark