When we launch an msi, after some screens we will get the feature selection page.
Feature selection page:
We can remove any feature by just changing the feature table, display column value to 0.
But how to alter it at runtime, I mean, based on some property value,which might get altered from a different custom dialog we add or based on a custom action.
I tried by creating a property and adding that property at the display column of feature table as
But it is not accepting non-integer values.
Any suggestion, how to implement this please.
I tried this so far.
Created a custom action of vbscript type
UpdateFeatureDisplay "erwinDM",Session.Property("DM_VISIBLE") UpdateFeatureDisplay "NoSQLStandalone",Session.Property("NS_VISIBLE") Sub UpdateFeatureDisplay(featureName,display) Set viewlist = Database.OpenView("SELECT * FROM `Feature` WHERE `Feature`='"& featureName &"'") viewlist.Execute Set reclist = viewlist.Fetch viewlist.Modify 6 , reclist reclist.StringData(5)= CStr(display) 'reclist.IntegerData(5)= CInt(display) viewlist.Modify 7 , reclist viewlist.Close End Sub
And, kept it to trigger when I click next , before the custom feature selection page.Where I take values from the check boxes.
But I am getting error in the log as below.
MSI (c) (14:B4) [17:50:30:269]: Note: 1: 1720 2: setFeatureDisplay 3: -2147467259 4: Msi API Error 5: Modify,Mode,Record 6: 8 7: 2 Action ended 17:50:30: setFeatureDisplay. Return value 1.
Instead of keeping it in the Next event of dialog, if I keep it after setupinitilialization of ui sequence, it is not giving the above error.But not reflecting in the feature page also.
If we pass the property value, which are altering using UI, as a command line parameter, then only it is reflecting.I mean, during launch of msi.