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.
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.
Adrian is correct. This might add some more info.
http://www.ghacks.net/2009/03/23/msi-or-exe-setup/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With