Solved

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

Posted on 2014-07-29
9
924 Views
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 VB.net 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.
0
Comment
Question by:down0041
9 Comments
 
LVL 52

Expert Comment

by:Carl Tawn
Comment Utility
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.
0
 

Author Comment

by:down0041
Comment Utility
Carl, thank you very much for your reply.  Is it correct to say then, that I should always use the setup.exe, when installing VB.net apps?  

Thanks again very much for your quick reply!
0
 
LVL 52

Accepted Solution

by:
Carl Tawn earned 500 total points
Comment Utility
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.
0
 

Author Closing Comment

by:down0041
Comment Utility
Carl, thank you very much.  This is exactly what I was looking for.

Would you please recommend to me any books on VB.net?  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.
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 52

Expert Comment

by:Carl Tawn
Comment Utility
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:

http://msdn.microsoft.com/en-gb/data/ee712907
0
 
LVL 40

Expert Comment

by:Vadim Rapp
Comment Utility
>  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.
0
 

Author Comment

by:down0041
Comment Utility
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.
0
 
LVL 44

Expert Comment

by:AndyAinscow
Comment Utility
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.
0
 

Author Comment

by:down0041
Comment Utility
AA - thank you.  That makes sense.  Thank you for this.
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

762 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now