Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

Solved - what is the difference (or relation) between setup.exe and .msi file?

Posted on 2014-07-29
Medium Priority
Last Modified: 2014-07-29
What is the difference (or relation) between setup.exe and .msi file?
I have always thought that I should run .msi file, when installing my projects to other PCS.  However, in the last week, I was getting Crystal reports error on Win7 64bit PC's.  

When I ran the setup.exe instead, the Crystal reports error was fixed.

Just curious about "setup.exe" versus ".msi" files.
Any insight greatly appreciated.
Question by:down0041
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 52

Expert Comment

by:Carl Tawn
ID: 40226693
The .msi is the actual installation database for your application. The .exe is a bootstrapper, which generally takes care of installing prerequisite packages and other tasks.

An msi can only install a single application, so if you need any prerequisites installing that also come as a .msi, then the bootstrapper takes care of installing them by launching the relevant .msi.

Author Comment

ID: 40226730
Carl, thank you very much for your reply.  Is it correct to say then, that I should always use the setup.exe, when installing apps?  

Thanks again very much for your quick reply!
LVL 52

Accepted Solution

Carl Tawn earned 2000 total points
ID: 40226747
It depends on your requirements, and what package you are using to create your installation package, and also your deployment method.

If you are deploying on CD/DVD then it doesn't really matter. If it is a web deployment then, if you use an EXE, you will want to embed the MSI within it, rather than leaving it as a seperate component. Also bear in mind that a setup.exe will increase the overall size of the installation package, which may or may not be an issue for you if it is a web download.
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!


Author Closing Comment

ID: 40226769
Carl, thank you very much.  This is exactly what I was looking for.

Would you please recommend to me any books on  I am a SQL guy, that through necessity occasionally creates vb apps.   I understand the basic syntax just fine.  I am more interested in working with data.  I was "almost competent" in VB2003 (using dataAdapters).  Now in VB0212, it looks like everything has moved to tableAdapters, and I am struggling.
LVL 52

Expert Comment

by:Carl Tawn
ID: 40226832
Yeah, there are various data access methods around nowadays (TableAdapters, Linq-to-SQL, Entity Framework, etc).

I'm generally a fan of Wrox and Apress books so you might want to look at a few of those. Although, you tend to find that most books try to cover a broad range of topics, rather than data access specifically, so sometimes don't go very deep into the subject.

It might be worth hunting around on MSDN for articles and tutorials, perhaps starting with this:
LVL 40

Expert Comment

by:Vadim Rapp
ID: 40226837
>  Is it correct to say then, that I should always use the setup.exe

It's correct to say that with most products that come with setup.exe, you should always try to do the opposite, i.e. extract .msi file and try to use that and avoid using setup.exe. Of course there can be exceptions.

The main reason is that setup.exe is not always "innocent". As Carl noted, its main functions are (1) checking prerequisites and installing them if needed, and (2) unpacking the msi and launching it. However, some setup.exe's can also (3) install additional software, for example to periodically check for the updates (4) install software you don't need at all, from the vendor who "sponsors" software maker - such as McAfee, Norton, and similar. I.e. in way too many cases the reason software vendor has wrapped the installation into setup.exe is not technical but marketing.

I personally usually do the following. I launch setup.exe, wait until it shows welcome screen, then go to the %temp% folder, "steal" the actual installation, cancel setup.exe, then launch the installation. In most cases it works,; if not, that's when you run setup.exe.

Another scenario is installation of drivers. Again, driver vendor usually tries to do it by setup.exe that will install the driver, but also ton of "value-added" applications, supposedly for better using of the device. For example, you download 120MB driver for HP scanner, and there 1% is the actual driver, and 99% is a "suite" of stuff that will take over half of your system tray trying "to help". Or it's ugly Realtek audio panel, still in windows 3.1 style, that will replace the regular one. So, as soon as all this treasure is unpacked, you go to %temp%, find the actual driver (the directory with .sys and .inf files inside), then update the driver from device manager pointing it to that directory.

Author Comment

ID: 40226877
Carl - thank you very much for your book suggestions. Greatly appreciated.

Vadimrapp1 -  Thank you very much for your comments.  Your explanation is greatly appreciated as well.
LVL 44

Expert Comment

ID: 40227002
In theory, because the setup.exe is a wrapper, there could even be more than one .msi file.  The desired one for your configuration is then called.  Installing directly from the msi could lead to problems because you choose the 'incorrect' version.
A setup.exe from a commercial vendor should be OK, those for free utilities/apps (from the web) may well, as vadimrapp1 states, install other software silently to your detriment.

Author Comment

ID: 40227010
AA - thank you.  That makes sense.  Thank you for this.

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK ( for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question