WIX Installer with modern look and feel
Asked Answered
D

2

9

I am currently creating an installer for my software. I decided to use WIX for it, because I read on stackoverflow that while it has a steep learning curve, it is the most versatile tool to create .msi installers.

I'm trying to create a very simple one screen installer, and I'm happy with the results so far, but some of the controls just look really outdated.

enter image description here

The sunken text edit doesn't really match the look and feel of Windows 10. What bothers me more is the file browsing dialog, though.

enter image description here

I know that I can change the logo, but the icons and everything just look like they're coming from Windows 98. Since WIX seems to be a widely adopted option for creating Windows installers, I thought there must be a solution out there to create a more modern look and feel, but I wasn't able to find anything.

Do I have to live with the outdated look? If so, do you have a better alternative for creating Windows installers (.msi not required)?

Disproportionate answered 15/9, 2018 at 10:58 Comment(3)
I'll answer properly - if nobody else does - later, but MSI is an old technology with outdated features on all fronts - including the dialogs. Deployment Tools. And an alternative list view of tools.Mozzetta
@SteinÅsmul, your link hardly says MSI is outdated: "MSI: The normal way to deploy services."Sangsanger
Yes, MSI is still in common use to deploy services and packages in general, but the MSI engine in Windows has not been updated for a very long time. The technology is no longer evolving, but is still in widespread use. Note that MSI dialogs were always less than ideal - they lacked a few essential features and had some terrible event and update problems that never got resolved properly.Mozzetta
T
10

Custom GUI: Maybe I can add to Phil's answer that the WiX installer itself uses such a custom Burn GUI. You obviously have the WiX installer already, but here is a link to the WiX 3 installert for other readers.

Burn: Just to clarify: Burn is part of WiX - it is a bootstrapper / sequencer / downloader tool designed to help you run several MSI files or setup.exe binaries in sequence. Hence it allows you to also install prerequisites. The fact that it allows an external GUI is just another aspect of its primary function: to install all the setups and components you need - in the right order.

MsiSetExternalUI: For the record: the underlying feature in Windows Installer itself that allows an external GUI to be used is the function: MsiSetExternalUI? I think Installshield - one of the leading commercial tools for creating Windows setups - provides some more modern GUI features as well - using this external GUI approach, but I don't have a full overview.

Some Burn samples: There are many samples available on github.com for how to make Burn bundles with WiX. Here is a nice, first sample of what Burn can do: https://github.com/frederiksen/Classic-WiX-Burn-Theme. This shows how you can make a simple Burn GUI that has a more "modern feel".

There are many other resources available. Here are a few I would recommend:

Burn has a standard GUI available - which is more modern than the normal MSI GUI. But you can also implement the whole GUI yourself - as Phil states in his answer. Here are a couple of links on the subject:

MSI GUI: The actual MSI files themselves can also have a customized GUI. Here is an old answer on customized MSI GUI.

To be clear: the Burn Setup.exe has one GUI and the actual MSI files included can have their own GUI embedded. The embedded GUI in MSI files can be suppressed via Burn (also by msiexec.exe install commands).


Some Links:

Teutonic answered 15/9, 2018 at 23:39 Comment(0)
F
3

You get a basic UI with Windows Installer, and that's mainly because it comes from 1998 (pre .NET) and could not assume that anything (.NET, C++) was on the system other than the bare bones of Windows. And obviously it's not been modernized.

The standard way to do this is to build your own UI using Burn, supplying your own UI to contain the standard data that the install provides as it progresses. If you do a search for "burn ui wix" you'll find examples of how to provide that framework, such as this one:

https://frozencloud.wordpress.com/2016/05/03/creating-a-custom-ui-installer-with-wix-burn-bootstrapper/

It gets complicated because you need to deal with all aspects of the UI, including file-in-use dialogs, that browse dialog, and so on. There may be some complete examples somewhere if you search for examples.

Fib answered 15/9, 2018 at 18:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.