Hi,
Hi, I was playing with the new installer wizard and used the NET Framework option. The resulting installer put the NET Framework 4.8 prerequisite under the pre-install section of the Prerequisite page, whereas when I manually add a NET 6 Desktop Runtime prerequisite (in other projects), AI always put the prerequisite under the Feature-Based section of the prerequisite page.
In order to manually add a prerequisite under the desired section, you can right-click on that section (see the image below) and select the "New Package/URL Prerequisite" options, except for the "Chained" prerequisites which have their own option. You can also first select the desired section, then use the "New Package/URL Prerequisite" toolbar buttons to add the prerequisite to that section.

- Add Prerequisite.png (20 KiB) Viewed 29393 times
I couldn't find any dialog or UI option to put it under pre-install myself, so I took a chance and dragged the PR from Feature-based to Pre-install. AI popped up a message that the drag enabled the EXE Package Type. (I assume it was an MSI installer beforehand.) I thought maybe only EXE installers could use pre-install PRs.
Sure, you can drag and drop a prerequisite from a section to another without issues (except from the "Chained" prerequisite which cannot be dragged to another section).
Q1. Is it true that only EXE installers can put things in the Pre-Install section? Is the design intent there to completely finish all prerequisites before even starting up the MSI? Is that an advantage in some cases or something? (I would think the MSI installer would do the PRs first anyway and abort if the PR installations failed.)
Yes, the "pre-install" prerequisites require an EXE package because they are installed by the EXE Bootstrapper before the MSI installation starts. There are many cases where "pre-install" prerequisites have an advantage and they are required instead of the "feature-based" prerequisites.
The "feature-based" prerequisites are installed after the "Dialogs" stage of the MSI installation (on Full UI) and at the end of the "Install" stage (on Basic UI and Silent installations) while the "pre-install" prerequisites are always installed before the MSI installation starts. So, if some "Dialogs" options/actions (on Full UI) or some "Install" actions from the MSI depend on other prerequisites, then those prerequisites must be added as "pre-install" prerequisites.
Q2. Does it make any difference at all whether I put a NET Framework or NET 6 Desktop Runtime prerequisite under Pre-Install or Feature-Based? Won't the MSI installer install the prerequisite before installing the application files anyway? (Or maybe it does them in parallel or something?
There are also prerequisites like "NET Framework" or some versions of "SQL Server Express" that cannot be installed as "feature-based" prerequisites because they conflict with the MSI installation. You can read more details in the "
Why does .NET Framework fails as feature-based prerequisite" FAQ.
Although your web pages on MSI vs EXE strongly suggest using an MSI package, I can only access the optional colorful install dialogs using an EXE package. So, I am leaning toward EXE for my solopreneur, non-enterprise packages. Just for the fancier dialog colors (sigh).
There are many advantages of an EXE package over a MSI package in terms of UI (look and feel) and the functionalities it offers. Actually, the EXE Bootstrapper embeds the MSI package inside which is extracted and installed when the EXE is launched.
The MSI package is more friendly with some deployment services like GPO that do not support EXE packages. You can see a comparison in the "
EXE or MSI Installer" article.
If you have other questions, just let me know.
Best regards,
Eusebiu