Deployment - Setup.exe - Asked By Lokesh M on 29-Sep-09 06:45 AM

Hi,

Is their any difference between setup.exe and .msi files (output of web setup)...

I observed if i run .msi file, it will ask to "install .net framework 2.0, even though it present in root directory"

If i run setup.exe, it will automatically installs .net framework and then application....

So i thought of expecting the difference between these two...

Many thanks

Lokesh





difference between setup.exe and .msi files - Sagar P replied to Lokesh M on 29-Sep-09 06:54 AM

Yes your are right Setup ensures that the msi can run fruitfully - it checks that the correct version of Windows installer exists as well as any other prerequisites, such as checking that the currently installed version of .net is sufficient for the program. If for example, a later version of .net is required, setup.exe will then install that prerequisite, usually from files bundled with the setup.

Setup then calls the msi, which itself is responsible for copying in all the files to the correct locations and registering them, where necessary.

To use a setup.msi u need to have Windows Installer on your computer.
no need with setup.exe


See this detailed information abt both;

MSI:

MSI files are database files, used by Windows Installer. They contain information about an application which is devided into features and components, and every component may hold files, registry data, shortcuts etc. The MSI file also contains the UI that is to be used for installing, and various other data such as any prerequisites to look for, custom actions to execute, the order of the installation procedure, whether to support Administrative installations, etc. It can also contain the actual files to be installed themselves (this isn't always the case though, the files can also be in an external CAB file or just as plain uncompressed files in a location where MSI can find them).

MSI files are the current recommended way of doing installations on Windows. The alternative is writing a program that performs the installation itself.

MSI files are executed by an EXE file that is part of Windows, called MSIEXEC.EXE. This application reads the data in the MSI file and executes the installation.

EXE:

Windows Installer is pretty new, especially the newest version (3.0). Often installations that use MSI still come with an EXE (e.g. SETUP.EXE). This EXE is a so-called 'bootstrapper'. It doesn't perform the installation, it simply checks if the correct version of Windows Installer is present on the system, if not it launched the MSI Redistributable (MsiInstA.exe or MsiInstW.exe depending on the platform) and then launches MSIEXEC.EXE on the MSI file. In certain cases (especially Internet downloads), the MSI file and MSI redistributable are packed inside that EXE file, so you don't see they're there.

So installations can come in three flavours:

  1. A custom, third-party installation system in an EXE file.
  2. A Windows Installer installation in an MSI file.
  3. An EXE file that bootstraps an MSI file (that may be embedded inside the EXE file).

MSI files can only be installations. EXE files can be literally anything that can run on your computer.

see this - Vishal Chourasiya replied to Lokesh M on 29-Sep-09 07:03 AM

When you create a setup for a project, you get 3 files with the 1.1, a .msi, .exe and a .ini.

Now if you take the .msi and carry it to another computer, it will install the program. If you take the .exe and the .ini to another computer it will perform the same action. What then is the different between the .msi and the .exe? I noticed that the visual studio 2005 dont generate any .ini. it's just two files, the .exe and the .msi.

I'm sure this is a simple question for most people.

.msi file creating to deploying on network it uses windows installer for installing.
.msi file also created for OU. if you create .msi than you have not need to manully install on every system in a lan. just you deploy the file it install the file.
There are so many settings when you creating .msi file.

Diff Between .MSI & .EXE - Lalit M replied to Lokesh M on 29-Sep-09 07:10 AM

The Setup.exe file is the bootstrapper. As CJ says, it does all the checking and validation to make sure it is OK to run the MSI. If you include the Framework with your installer it is Setup.exe that checks for the Framework already installed and then installs it if required. It also does the same for any other prerequisites. If you run the MSI directly then you'll install your app but you'll have no guarantee that it will work. If you know for a fact that all the prerequisites are in place then you can run the MSI directly, otherwise you should run Setup.exe and let it invoke the MSI if appropriate.

you will also get more details from this link
http://www.symantec.com/connect/articles/understanding-difference-between-exe-and-msi