Dec 05, 2013
01:51 AM
Thanks for the good ideas. There's another great thread on this subject at the URL below, where I've posted an alternate solution: http://community.flexerasoftware.com/showthread.php?172240-Hide-Feature-in-Basic-MSI-during-runtime&p=493121#post493121 Thanks, Christopher
... View more
Dec 05, 2013
01:49 AM
Wow that's great that you two got it to work. That code will serve me well in the future. Thank you. Here's one alternate way that avoids the need for a custom action: - For each Feature whose state needs to change conditionally, create 2 rows in the Condition table, one that sets that Feature to InstallLevel 1 and the other that sets it to InstallLevel 0. Set the condition to be the user's radio button selection (e.g. SELECTED_STATE="Server"), as appropriate for that Feature. - Set the Feature to be "Visible and Expanded" and Required to "No". The InstallLevel can be set to either 0 or 1. - Trigger a control event from the "Next" button of the dialog where the user chooses between "server" and "client", with the following values: DoAction | CostFinalize | 1 The only thing this doesn't do is maintain the user's selection state of the Feature if he goes back and forth, i.e. if he clicks as follows: Server -> de-select the enabled server Feature (i.e. to not install) -> Back -> Client -> Back -> Server , then the enabled server Feature is selected, though he had previously specified that it be de-selected. But this is a minor issue, if any. One could even argue it's better this way. Robert: I'd love to hear from you as to whether you think running CostFinalize several times has any drawbacks. It didn't appear to, but I seem to recall learning to avoid this several years ago. Thanks! Christopher
... View more
Sep 19, 2012
05:41 PM
1 Kudo
Thanks, Viktor, for a great solution. I've implemented your directions and they work great! I'm very happy about that. Your directions are clear, and here are also the contents of the MSI tables when exported as IDT files (using Orca). I've only included the lines that need to be changed to enable this functionality. Of course you must customize the Condition column of the ControlEvent table to list your own top-level MSI Features. But otherwise they can be copied verbatim. [FONT="Courier New"]ControlCondition.idt -------------------- Dialog_ Control_ Action Condition s72 s50 s50 s255 ControlCondition Dialog_ Control_ Action Condition CustomSetup Next Disable CUSTOMCHOICE=0 CustomSetup Next Enable CUSTOMCHOICE=1 ControlEvent.idt ---------------- Dialog_ Control_ Event Argument Condition Ordering s72 s50 s50 s255 S255 I2 ControlEvent Dialog_ Control_ Event Argument Condition CustomSetup Tree [CUSTOMCHOICE] 0 &Feature1<>3 And &Feature2<>3 2 CustomSetup Tree [CUSTOMCHOICE] 1 &Feature1=3 Or &Feature2=3 1 EventMapping.idt ---------------- Dialog_ Control_ Event Attribute s72 s50 s50 s50 EventMapping Dialog_ Control_ Event CustomSetup Next SetProperty Enabled Property.idt ------------ Property Value ISComments s72 L0 S255 Property Property CUSTOMCHOICE 0 [/FONT]
... View more
Latest posts by chrismi
Subject | Views | Posted |
---|---|---|
1123 | Dec 05, 2013 01:51 AM | |
2584 | Dec 05, 2013 01:49 AM | |
1502 | Sep 19, 2012 05:41 PM |
Activity Feed
- Got a Kudo for Victor, you rock. Dec 06, 2022 06:37 PM
- Posted Re: Hide Features in Custom Setup Dialog by Property [Basis MSI] on InstallShield Forum. Dec 05, 2013 01:51 AM
- Posted Hide Feature in Basic MSI during runtime on InstallShield Forum. Dec 05, 2013 01:49 AM
- Posted Victor, you rock on InstallShield Forum. Sep 19, 2012 05:41 PM