Search code examples
.netwindows-installeruacnsisbootstrapping

Windows: install application + dependencies


I need to develop an installer for a .NET application and its dependencies.

The .NET application itself is using WiX for the installer. That is resolved and does not really need to be changed.

My problem is the "install the dependencies" part. The .NET application depends on several other third-party packages: database, some Windows updates which I got permission to redistribute -those, I need to check if they need to be installed or not-, VirtualBox, etc).

My first approach was to use dotNetInstaller to create a bootstrapper but dotNetInstaller is pretty limited in the checks it can perform. Specifically, MUI-translated Windows are driving me crazy (the Windows updates need to be installed for the original language of that Windows installation, not for the language the user sees).

What are my alternatives to create a bootstrapper with powerful logic? Are NSIS, InnoSetup, etc fit for what I want?

My constraints are:

  • Must be deployable in a corporate environment
  • Single UAC prompt (when the bootstrapper is launched)
  • I do not require to a single file that bundles all together, although if possible it'd be welcome
  • Powerful logic (which probably means procedural)

Solution

  • There aren't many standalone bootstrappers for installation packages. Most of them come with a setup authoring tool.

    The way I see it, you will have to choose one of the following:

    1. Use the WiX built-in bootstrapper.
    2. Use an dotNetInstaller or IExpress (they are pretty limited).
    3. Use a different setup authoring tool which offers a better bootstrapper. With this approach you will need to convert your setup project to use that tool.