How to create windows installer [closed]

Solution 1:

Short Version: Lots of answers already - I'll primarily just add some links to existing answers. Here is a previous short answer of mine on the topic.

Higher "glanceability": The above answer features a simpler format with a list view of the most important current deployment tools. In a rush? Test these, chose one. Below are more details and some further "discussion".


Deployment Tools

There are many tools available to create create installers / setup.exe files of various kinds. Here are some links to brief descriptions of most of them:

  • Non-MSI installer tools: http://www.installsite.org/pages/en/tt_nonmsi.htm
  • Windows installer tools: http://www.installsite.org/pages/en/msi/authoring.htm
  • Sys-admin tools for deployment: http://www.installsite.org/pages/en/msi/admins.htm (for completeness, not really relevant for you)
  • UPDATE: On the topic of multi-platform installers: Does an universal cross-platform installer exists?

I would recommend to go for MSI. What specific tool to use is less obvious. See last section below for some links with descriptions of strengths and weaknesses of different tools.


Auto-Update?: Various ways to create auto-updating packages.


Why Choose MSI? The Key Benefits of MSI:

MSI (Windows Installer) is the standard for corporate deployment since it offers a number of corporate benefits of major significance compared to previous installation technologies. The benefits center around reliable remote management and standardization - crucial corporate deployment concerns.

In brief the most important, specific benefits are probably:

  1. Reliable silent running (standardized & completely suppressible GUI)
  2. Implicitly available uninstall (a nightmare when dealing with legacy setups)
  3. Transparency (installer's semi-transparent and inspectable nature - except compiled CAs)
  4. Elevated installation rights (no messy temporary admin rights)
  5. Standardized command line (no hunting for "secret" switches)
  6. Administrative installation (file extract - essential for corporate repackaging)
  7. Verbose logging (helpful and verbose indeed :-) )
  8. Standardized package customization (transforms - database fragments)
  9. Rollback support (can undo changes for failed installs)
  10. Inventory (management and reporting: full registration of what is installed and where)
  11. Active Directory / GP integration

Altogether this yields MSI's overall benefit: reliable, remote management of deployment for busy system administrators in large, corporate environments. Crucial benefits, despite the technology's complexity and quirkiness.

Many find the technology challenging to deal with - there are some common pitfalls (and I wrote a very odd, ad-hoc description of some MSI anti-patterns towards the bottom here - out of context for the question, but there it is - sometimes things get written in the spur of the moment to the surprise of whoever is writing too - great it is not, just pragmatic details. Same goes for the first link).

The linked serverfault answer (above and here) features a much more elaborate description of these corporate MSI benefits along with some challenges to be aware of.

The same serverfault question has a second answer describing common design errors in MSI files. A really messy "brain dump".


MSIX / AppX

I should point out that the new platform for packaging from Microsoft now is MSIX based on the AppX application framework. However MSI has high penetration in the corporate deployement world, so it remains to be seen how long MSI will be relevant. All established deployment tools are working to support MSIX and AppX and other deployment technologies (also virtualization).

Slipping in some links:

  • Auto-update packages / MSIX and other formats
  • https://www.advancedinstaller.com/msix-introduction.html

AppV

And in the real, corporate world AppV (application virtualization / application streaming) has turned into a common deployment solution (Tim Mangan's blog).


Choosing an MSI Tool

Industry leaders for MSI creation are generally Advanced Installer, Installshield, PACE Suite, and the open source solution WiX (with its commercial branch Firegiant) - which you seem somewhat familiar with.

I'll just give you some links to previously written answers with some opinions and facts in an indiscreet mix about these different tools - it is intended as a "best effort" to help people decide what tool they need, without claiming to be "right". This is always a dangerous endeavor - years of experience mean acquired knowledge, but also bodes for acquired bad habits and quirks. What results are honest opinions from a flawed professional who can only offer a willingness to help:

  • What installation product to use? InstallShield, WiX, Wise, Advanced Installer, etc - a subjective attempt at an objective evaluation of the strengths and weaknesses of the currently established deployment products.
  • Quick start for WiX - a messy little answer with suggestions on how to hit the ground running with WiX that has been upvoted more than usual. It must have been helpful. I like the "hello world" style sample I link to on codeproject which other have mentioned as well.
  • Windows Installer and the creation of WiX (quick and unofficial overview of how WiX came about and how it works. Also a part on "the unavoidable complexity of deployment").
  • How can I compare the content of two (or more) MSI files? (some brief information on the MSI format, how to inspect MSI files and retrieve and inspect the content in them using free tools).
  • How do I avoid common design flaws in my WiX / MSI deployment solution? (some well-meant but messy advice on how to avoid problems in your MSI-based deployment solution).

Solution 2:

I prefer Inno Setup because it is free, robust, and has the features we need.

http://www.jrsoftware.org/isinfo.php

Solution 3:

https://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with

Try this, this make use of the wix project we also use it at our company. Remember you will need the wix plugin to compile the project. It's free and easy to use. I can help you if you have some problem in the configuration.