I have written an installer for a piece of software. It requires another piece of software in order to run (the .NET Framework, which is already installed on the majority of Windows machines). If not found, I do the following:

  • disable the “next” button in the installer dialog
  • tell the user what’s going on and why they cannot continue
  • provide the user with a web link to install .NET
  • provide the user with a “Check again” button that checks whether .NET is installed; if so, the “next” button is enabled and the error message disappears, otherwise nothing visible happens

Here are two screenshots of what is happening:

Prerequisites not found Prerequisites found

What bothers me is:

  • the “Check again” button seems out of place, and it’s not obvious that the user has to click on it
  • after installing the prerequisites, it’s two button clicks (Check again + Next) to go to the next page instead of one
  • if I just automatically reactivate the “Next” button, the user may not notice that the UI has changed
  • if I just automatically switch to the next page, it might confuse the user

Do I have ways to improve this workflow in a user-friendly way?

  • 2
    Can you package the correct version of .net into your installer, rather than ask the user to install it outside of the installer (which is what you are asking them to do here)?
    – SteveD
    Apr 5, 2016 at 13:36
  • I really can’t do that. My software weighs about 1.2 MiB, whereas .NET is about 230 MiB, plus optional security fixes downloaded by its installer. Apr 5, 2016 at 14:23

3 Answers 3


You can remove the button and check for the .NET framework every 10 seconds. When the .NET is installed the NEXT button will be activated automatically.

I also recommend that you change your text to something like :

Wincompose ... installed. The following actions are required :

Download and install .NET framework 3.5. service pack 1

Return to this screen to continue the setup

  • Ah, I like this idea, thanks. I may go for something like this for the second part: “Once this is done, you may return to this screen and proceed with the installation”, what do you think about the wording? i.imgur.com/8q8GIf0.png Apr 5, 2016 at 15:40
  • Yes, I like the wording you are using. Apr 5, 2016 at 18:00

Another approach is to initially start the install by listing and checking all the pre-requisites. Until all pre-requisites are fulfilled, you cannot even get beyond first base, but at least the rest of the install will now go smoothly without disjointed steps like you described.


I'm making an assumption, in that this will be downloaded from web.

I think you should prompt the user of the requirements before initial download, and provide them with the package they need at this time. Ideally you can get them to install this first, before downloading and running and installing your application.

I believe the users .NET version is now being returned as an HTTP request header labeled "X-ClickOnceSupport".

  • Relying on the header seems like an awful technical decision: it requires unnecessary server-side development and support, it’s not guaranteed to be here (old browsers, web proxies), it won’t work if my software is downloaded from other places, or installed on another machine, it’s browser-dependent, it requires a version of .NET more recent than what my software actually requires. Even for the cases where it might work, I would still need some kind of prerequisite discovery in my installer, and back to square one. Apr 5, 2016 at 15:03
  • It was just a suggestion, I don't know where you application will be available from. And I never said to remove your current req. check, but was thought as an additional way to avoid any interruptions in the actual install process.
    – Mark
    Apr 5, 2016 at 15:06
  • I appreciate the suggestion, then. It’s true that if seen as an additional help then it does not have to cover 100% of the use cases. Apr 5, 2016 at 15:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.