Mailbag: How to run .NET Framework setup in reduced UI mode

Question:

Windows Installer has a reduced UI mode that can be invoked by running msiexec.exe /qr. When I start the .NET Framework 1.0 or 1.1 in reduced UI mode by running dotnetfx.exe /q:a /c:"msiexec.exe /i netfx.msi /qr", I see UI that looks like the following:

.NET Framework 1.1 setup in reduced UI mode

However, when I use the same command line to run .NET Framework 2.0 setup in reduced UI mode, I see UI that looks like the following:

.NET Framework 2.0 setup in reduced UI mode

Why is there a difference? How can I make .NET Framework 2.0 setup behave the same way as .NET Framework 1.0 and 1.1 setup do in reduced UI mode?

Answer:

The .NET Framework 1.0 and 1.1 use built-in Windows Installer setup UI dialogs. The .NET Framework 2.0 uses an external UI handler, and as a result, it does not have any Windows Installer UI authored into its MSI.

According to the MSDN documentation, reduced UI mode causes Windows Installer to display any modeless dialog boxes and error dialog boxes that have been authored into the UI.

Because .NET Framework 1.0 and 1.1 setup use built-in Windows Installer setup UI, running setup in reduced UI mode displays the same (modeless) progress dialog that appears during full UI mode. Because the .NET Framework 2.0 does not have any Windows Installer UI, running setup in reduced UI mode causes Windows Installer to fall back to using built-in modeless dialog boxes and error dialog boxes (which is the equivalent of basic UI mode).

Unfortunately, there is not any way to cause the .NET Framework 2.0 setup to display more detailed progress UI like the .NET Framework 1.0 and 1.1 setups do.

Note that there is a bug in Windows Installer that causes the progress dialog to appear with no text during .NET Framework 2.0 setup in reduced and basic UI scenarios (like in the above screenshot).  This blog post describes that scenario in more detail, and it includes a workaround you can use to cause explanatory progress text to appear during installation.