SQL Updates/Migrations - How to create windows installer? [closed]
Asked Answered
K

6

18

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 change set.

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

Kirschner answered 3/4, 2018 at 7:0 Comment(0)
H
38

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 - the install runs elevated via Active Directory advertisement, group policy or remote administration. Some qualifications here - only part of an MSI installation sequence runs elevated and the installer itself must be correctly authored for this elevated rights concept to work correctly). More info.
  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:

Hypoploid answered 3/4, 2018 at 14:11 Comment(1)
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.Polloch
A
5

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

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

Alethaalethea answered 3/4, 2018 at 11:33 Comment(0)
B
1

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.

Burkey answered 3/4, 2018 at 7:15 Comment(0)
S
0

There are also paid tools like Advanced Installer (by Caphyon) and InstallShield (by Flexera) which you can use to build an MSI package. Their main advantage is that it is quite easy to create an installer project (configurable via UI designers), but most of their features are paid ones.

Samanthasamanthia answered 3/4, 2018 at 8:31 Comment(0)
D
-1

Checkout https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects

It's based on WIX but easier and faster to start with, especially for smaller projects.

Darrondarrow answered 3/4, 2018 at 7:43 Comment(0)
L
-1

If you want a tool to help you but still want to have a script like the Wix-Toolset has you can try WixPie. With the basic version you can create a msi or exe and the basic version is free.

Labbe answered 2/10, 2018 at 18:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.