Can we know the installation order of features that are being installed with the msi. And also the exact time taken for which each feature to get installed completely?
Asked
Active
Viewed 186 times
0
-
The smallest user-selectable installable unit is a product-version-feature. But the smallest installable unit is a component. A component can exist in multiple features and features can be nested. So, what is meant by order and duration? – Tom Blodget May 21 '19 at 16:35
-
It might be helpful to know what you need to know this for? Perhaps there is another way to achieve what you want? Is this for metrics? Then you can install one feature at a time (if they are selectable), but that won't account for components that are shared between many features? – Stein Åsmul May 21 '19 at 19:17
-
We want to replicate the exact background scenes to the UI (progress bar in our case). To explain in detail if we are installing 5 features we are listing the 5 features on the installing page and validating each feature with equal amount of time provided to each feature. Now , we want to know exact order and time taken for the features that are being installed so that we will show indications to the user that which is currently being installed. – diwakar anjan May 22 '19 at 05:21
-
1I suppose you could do this if you abandoned the feature approach and used separate MSI files wrapped in a WiX Burn Bundle (setup.exe bootstrapper). [On features and bootstrappers](https://stackoverflow.com/a/49501700/129130) (see section 3). And there are [two answers here on Burn Bootstrapper applications](https://stackoverflow.com/questions/52446750/removing-default-dialogs-from-msi). You would have to write your own to get what you want I believe. WiX itself features a custom GUI for the installation - a Custom Burn Bootstrapper Application in action. – Stein Åsmul May 22 '19 at 12:19
-
"We cannot restrict our product to use separate msi files for each feature". Is there a way to achieve with features as well as msi's or Is this a limitation with this constraint... – diwakar anjan May 23 '19 at 09:28
-
How were these requirements validated? (That is, in part, how was it determined they are useful to the users?) – Tom Blodget May 24 '19 at 16:46
1 Answers
3
MSI doesn't install files/components/features in a deterministic order. Instead it determines what need to be installed/replaced/removed and then executes them like such:
StopServices
RemoveServices
RemoveRegistry
RemoveFiles
RemoveFolders
CreateFolders
CopyFiles
WriteRegistry
CreateServices
StartServices
For some of these nothing may be needed depending on whether it's a first time install, final uninstall or maintenance transaction such as feature change, repair or upgrade.
Within any given type of resources (say folders, files, registry or services ) it is generally non-deterministic in which order they will be installed.
Finally MSI only predicts (costs) disk space needed it makes no calculations on how long something will take.

Christopher Painter
- 54,556
- 6
- 63
- 100
-
In general your answer is correct. The [File Table](https://learn.microsoft.com/en-us/windows/desktop/msi/file-table) does have a Sequence column though, but it is not directly controllable through WiX. – zett42 May 22 '19 at 18:53
-
No MSI authoring tool that I know of (short of ORCA) allows a developer to control that. It's best to ignore that column unless your doing some MSI SDK work interacting with cabs and such. No other table has such a column and it certainly doesn't match up to features and there are no performance metrics at that level either. – Christopher Painter May 22 '19 at 19:41
-
Put another way... the only time I've seen anyone care about that column was because they were deliberately trying to subvert the component rules. They wanted to use merge modules to compose an installer and say that merge module 1having component 1 should be installed first and merge module 50 having component 1 should overwrite it later. It just doesn't work that way. – Christopher Painter May 22 '19 at 19:48