make What does the EXE do in the Visual Studio setup project output

visual studio create exe c++ (7)

We are working on a winforms app in Visual Studio 2005 and the setup project we created output both an MSI and an EXE. We aren't sure what the EXE file is used for because we are able to install without the EXE.

here you can find the HMsoft NISeditor, this program works as follows: Run program Choose setupname add all .DLL and .exe files of your project create the setup

You can package the MSI with setup.exe into a single self-extracted archive and launch setup.exe after it's unzipped.

The EXE checks if Windows Installer 3.0 is present and downloads and installs it if it's not. It's needed only for Windows 2000 or older. Windows XP and newer all have Windows Installer 3.0 out of the box.

Other prerequisites, like .NET, are checked for by the MSI itself.

It's a bootstrapper that checks to make sure that the .NET Framework is installed, before launching the MSI. It's pretty handy.

I suggest using something like SFX Compiler to package the two together into one self-extracting .exe and then launch the extracted setup.exe. This way you retain the benefits of the bootstrapper, but your users only download a single thing.

Edit: also see

visual studio setup project confusion with two setup files?

The Setup.exe file is a BootStrap file used to check for the prerequisites that you setup in your Setup Project's Prerequisites Dialog. The MSI package itself is what determines the applications installation parameters. You should have Remove Previous Versions as true and make sure that your application's Assembly version has been incremented by at least the Build Number, otherwise if you are updating only the Revision number it will not be over written. The Assembly Version information Format is as follows. Major.Minor.Build.Revision. Make sure that you also change your setup projects Version number also.

How to run setup (*.exe) file with out using MSI File?

You have it the wrong way around! The MSI is the important but, the .exe is just a bootstrapper that calls the MSI. If anything you could just distribute the MSI.

See What does the EXE do in the Visual Studio setup project output?

It should be possible to create a bootstrapper that includes the actual MSI as an embedded resource, however I'm not sure how you can do this using Visual Studio.

If I were you I would either just distribute the MSI on its own with the instructions that users must have the .Net framework installed in order for the application to run, or combine up the two in a self-extracting zip (or similar).

I think the EXE is just a wrapper/bootstrapper for the MSI in case you don't have Window Installer. If you have the requisite Windows Installer version installed then the MSI should work fine on its own.