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

visual studio create exe c++ (6)

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

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.

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.

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.

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

Setup Project creates two files, what are the differences?

msi file is the Windows Installer file. It's a database storing all the stuff about your package, including the registry entries, files, shortcut. MSI file itself cannot be executed. The real installation work is done by Windows Installer service.

exe file is a bootstrapper file. It's a self extractable file. When you double click it, it extracts the msi file. If prerequisites not found on target machine, it can help installing it. e.g. VC runtime, Windows Installer 3.1, etc.

If prerequisites does not exist and you run the msi file instead of exe file, the msi file usually also does some pre-installation checking and give you a warning but the msi file itself won't install the prerequisites for you.

You can deploy your software via Group Policy using msi file but not exe file.

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.