Question

We have used msi factory for years, for windows apps, but it has been abandoned by the developer and not revved for years.

We are building a new app, pure .NET 4.51. It is a rather small app (very small, actually!), but we need a perfect installer. MSI or non MSI is fine.

What installer tool will let us build:

  • Minimalistic installation (no prompts, no nags, just click on the installer and it is completely silent... except for maybe an "I am done" screen)
  • .NET 4.5 checker: Check that .NET 4.5 is present, and automagically download it and silently install it if needed
  • Update/upgrade functionality: Needs to smartly see our app is running, terminate it, and then update our app or uninstall existing version/reinstall new version (we have scripted this in the past in installshield and the like). Key is that the update is also silent once started.
  • Automatic download and installation of app updates. I saw a clickonce approach that checked for update every time the app ran. Do normal tools have this?
  • Ability to add our icon to Startup folder.
  • Ability to do service management (our app may evolve into a service)

In the past (distant past) we wrote large installers in installshield. MSI Factory has treated us rather well. Please share your suggested tool to tackle this.

UPDATE, 5/29/14

Wix looks like the best, but we didn't want the learning curve of a new tool. We used Setupfactory (aka msifactory) from indigo rose. This tool is old (not updated for years), but we know it and it is great. We got it to do the .net 4.51 installation, and a rather silent update. No brains (yet) for silent automatic update, but we did get these needs met:

  • zero prompts for install and update
  • .net check and install
  • light and fast to run and use

OTHER TIPS

All the MSI building tools I've seen can do most of those with a few qualifications, so assuming you still want to build MSI files:

Minimal UI install is a feature of Windows Installer - if you have an MSI file then one of the /q options should suffice.

Prerequisites like NET are almost never installed by the MSI, but by a bootstrapper that installs them and then starts your MSI. There are good reasons for that, but it won't be the MSI that does many of those types of prereqs.

Major upgrades are a MSI thing, not a "what MSI-build tool shall I use". Patches (msp files) can be complex, so if your MSI files are not large then do major upgrades, or ifd you patch then choose a tool that makes it easy and failsafe wherever possible.

Most MSI building tools will let you write custom actions to stop running processes, assuming that they are not integrated with Restart Manager or they are not services.

The only vendor I'm aware of that provides automatic update for MSI products is InstallShield, and I believe it's a service you pay for. Otherwise code to download updates from your web site isn't actually all that complicated.

Visual Studio setups provide minimal support for many MSI features, I'd not use it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top