How to create windows installer

28,919

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:

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:


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:

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.

Share:
28,919
Ramesh
Author by

Ramesh

Updated on October 03, 2021

Comments

  • Ramesh
    Ramesh over 2 years

    Basically we are releasing our changes/fixes in the form of manual installer (Windows powershell script). It will install specified .dll and SQL script files at particular locations by reading config file values (We will configure .dll & Sql script locations in this file). The same powershell script has uninstallation code to rollback particular chage set.

    Is there any option or mechanism to create Windows installer for above requirement?

  • Rolice
    Rolice over 3 years
    MSIX/Appx appear to be very limited technology without full support (e.g. Named Pipes). While you are thinking its just a simple installer, actually the way application runs afterwards it is totally different. There is some "inadequate" isolation between apps, and these apps are not mean to be accessed directly, even by the user (being also Administrator). These apps are usually installed (depends on the registry config) in C:\Program Files\WindowsApps, which is quite well-hidden.