Feature request state is null when running upgrade installer
I have Feature A and B with condition A and B defined in a Basic MSI project. When run the installer first time and condition A is true but B is false, then feature A is installed.
After several days, the condition B is became true( which depend on a registry entry). I updated the installer and run it , but Feature B is not installed. The feature state of B is:
Feature: Feature B; Installed: Absent; Request: Null; Action: Null
In the log, MigrateFeatureStates: based on existing product, setting feature 'Feature B' to 'Absent' state.
To install Feature B, I have to uninstall the product and install again. How can I install Feature B without uninstallation? Thanks for any help.
Hi @shoogun ,
The acutal meaning of msi log of the line "Feature: Feature B; Installed: Absent; Request: Null; Action: Null"
|Request: Null||No request.|
|Action: Null||No action taken.|
|Installed: Absent||Component or feature is not currently installed.|
As well by default windows installer minor upgrade works in this way that if it is already installed feature only it will try to validate else it will be considered as absent.
But you can try below to check whether it works:
- REINSTALLMODE can be of
"omus" by default, but I guess
"emus"is also ok (
Reinstall if the file is missing, or is an equal or older version).
Hope it helps,
Thanks for the detail explanation. I tried to add REINSTALLMODE to the Property Manager and edit the value to emus. But the Feature B is still not installed. I have to uninstall and install again.
Hi @shoogun ,
"It is not a major upgrade. The product version is not change. I just rebuild the install project and install again"
If there is no change in product version it doesn't belong to neither minor upgrade nor major.Can you do MSI difference between both the msi files that you got as outcome of rebuilding as well the base msi?
REINSTALLMODE might not work for non-upgrade cases.
Did you try adding files or any other settings before rebuilding the project?MSI diff tool of Installshield can help you find what had been added in the rebuilt msi.
MigrateFeatureStates tells that it is upgrade scenario.Please read the below Microsoft link to get more about MigrateFeatureStates:
I change the product version from 188.8.131.52 to 184.108.40.206 and add the property REINSTALLMODE with value "emus". The feature B is not installed when I install 220.127.116.11 because its condition is not meet (The condition is check a registry entry). Then I add the registry entry and run the minor upgrade installer (18.104.22.168), but I found the Feature B is still not installed. The state of Feature B is Request: Null. If I uninstall and install 22.214.171.124 again, the feature B is installed correctly. Is it possible let Feature B installed without uninstallation in this scenario? Thanks.