12

Possible Duplicate:
What are the specific differences between .msi and setup.exe file?

I am working on an installer for a new version of my project (C#).

Previously, I've used Inno Setup to create .exe files for installing my projects on other computers in the workplace. While reading through some tutorials, though, I came across Windows Installer XML, which uses XML files to build a .msi installer.

My project will be available on a network share that all the employees have access to so they can install the software (I'm currently working on an update checker as well)

What are the major differences between .exe and .msi installers? Why would I want to chose one over the other? Would either make more sense given my specific environment?

I found some of the information at this question, but there was not a lot of information.

Community
  • 1
  • 1
Jared Harley
  • 8,219
  • 4
  • 39
  • 48
  • see also http://stackoverflow.com/questions/902841/why-do-so-many-programs-have-both-a-setup-exe-and-a-setup-msi – rds Dec 30 '10 at 16:23

4 Answers4

6

I wouldn't use WiX for a new project. I'd use an 'Installer Project' in Visual Studio to build an MSI. An installer project is much, much easier to put together.

Many exe installers are actually stubs or containers that hold an MSI, btw.

I guess you've checked out http://en.wikipedia.org/wiki/Windows_Installer?

MSI's give administrators the ability to restrict installs, rebase installs, change or add custom actions, automate installs/reinstalls/uninstalls, standard logging and switches. It just really integrates into a corporate IT environment ( http://technet.microsoft.com/en-us/library/bb742606.aspx ).

A custom installer may have many of those features, but that would depend on the installer package.

kervin
  • 11,672
  • 5
  • 42
  • 59
  • 1
    Just wanted to let anyone who saw this answer know that it is no longer accurate for version of Visual Studio beyond 2010. Visual Studio 2012 no longer supports Setup and Deployment projects. – Justin Skiles Jul 23 '13 at 19:10
  • For Visual Studio 2013 and above, there is an extension called "Microsoft Visual Studio 2013 Installer Projects" (replace 2013 with your version) on the VS marketplace, which supports the old installer projects. However, it has a bug which prevents it from installing 64bit applications, and the text in the wizard it produces has no anti-aliasing, so it looks outdated. – Tsahi Asher Apr 25 '17 at 08:37
6

Most EXE installers available today are simply stubs to verify that the target machine has just enough support to launch an MSI stored within the EXE. They do basic windows version checking and Windows Installer version checking, then essentially invoke msiexec and let Windows Installer handle the rest.

For a very basic installation, the Installer Project in Visual Studio can get you by, but for just about any kind of real customization or tweaking you'll need a real MSI editor. We use WiX and love it - but it's a bear to learn. If you've got the cash you can invest in InstallShield - but that has it's own set of quirks.

Paul Alexander
  • 31,970
  • 14
  • 96
  • 151
4

MSI is configurable while EXE is not. I know this doesn't answer your question directly, but I thought I should point towards the ClickOnce technology.

MSDN: See example here.

Simply stated, a ClickOnce application is any Windows Presentation Foundation, Windows Forms, or console application published using ClickOnce technology. You can publish a ClickOnce application in three different ways: from a Web page, from a network file share, or from media such as a CD-ROM. A ClickOnce application can be installed on an end user's computer and run locally even when the computer is offline, or it can be run in an online-only mode without permanently installing anything on the end user's computer. For more information, see Choosing a ClickOnce Deployment Strategy.

KMån
  • 9,896
  • 2
  • 31
  • 41
  • Interesting - I was aware of ClickOnce, but I thought it was just a way to distribute software over the internet. I'll have to take a look at the network share stuff - thanks! – Jared Harley Mar 16 '10 at 12:05
  • Unfortunately ClickOnce doesn't have CustomActions. – ABCD Jun 24 '13 at 00:46
1

IndigoRose's MSI factory is extremely powerful and much, much cheaper than InstallShield.

It uses WiX internally and allows you to modify the XML files in any way you like. The bootstrapper (.exe, if you add one) has a powerful scripting engine based on Lua to do... well anything.

CMircea
  • 3,543
  • 2
  • 36
  • 58