This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Removing Wizard pages in Suite project
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
‎Jun 04, 2014
05:18 PM
Removing Wizard pages in Suite project
I'm trying to remove some of the default wizard pages that allow users to select which features to install and instead set the features in a managed code action. I was able to get the managed code action integrated and according to the log file the properties are being set correctly.
The issue I'm having is that the wizard gets to the InstallationProgress page and then just hangs with "Initializing". What am I missing?
-hupperts
The issue I'm having is that the wizard gets to the InstallationProgress page and then just hangs with "Initializing". What am I missing?
-hupperts
(5) Replies
‎Jun 05, 2014
09:00 AM
Hi Michael,
No, I didn't. After enabling the Install button the installation continues as expected.
However, the whole reason to disable the user choice of features was to set that in code. I tried using the SetProperty from my managed code extension and the installer ignored my selections. (I did verify that the extension code is running in the debug log).
This is the code I'm using in my extension:
suiteExtension.set_Property("FEATURE[ChildMSI1].actionState", "install");
-hupperts
No, I didn't. After enabling the Install button the installation continues as expected.
However, the whole reason to disable the user choice of features was to set that in code. I tried using the SetProperty from my managed code extension and the installer ignored my selections. (I did verify that the extension code is running in the debug log).
This is the code I'm using in my extension:
suiteExtension.set_Property("FEATURE[ChildMSI1].actionState", "install");
-hupperts
‎Jun 06, 2014
08:19 AM
Hmm. I'm going to have to do some more research before I can propose the best solution here. In the meantime, here's what's going on. The properties of the format FEATURE[name].actionState are proxy properties only known to the UI. When processing changes to them, the UI changes it into a request that modifies the feature action. However the managed code action support runs at the engine level so the property is just a raw property with a funny name. Because of this, here are the options that would work:
- Change to a non-managed action that can be a UI extension. Then the properties will hit the proxies.
- Set some properties (use names that aren't the proxy names) from your managed code. Then read and handle these properties in the UI. (For example, set NameActionState in the managed code, then add SetProperty actions on the Next button that set FEATURE[name].actionState to [NameActionState].
‎Jun 06, 2014
08:59 AM
Thanks for the reply Michael. I'm definitely interested to hear what you find out. That's disappointing that managed code still doesn't have parity with C++ at run-time. My old application that had all the logic in InstallScript with calls to FeatureSelectItem. I'm trying to avoid writing InstallScript if possible.
‎Jun 06, 2014
10:44 AM
I tried what you suggested and it does work but seems cumbersome. Here's what I did:
1. Created a Property for each Feature in the Suite. (ChildMSI1InstallState, ChildMSI2InstallState, etc).
2. Modified my managed extension DLL to set the new properties.
3. Added a Property Comparison Condition to each Feature in the Suite to check the property.
4. Called my managed extension method from the OnBegin Event.
Is there an easier way to do this while still choosing the features to install from my managed extension DLL? When I'm done I'll have 75-100 child installers managed from my Suite.
-hupperts
1. Created a Property for each Feature in the Suite. (ChildMSI1InstallState, ChildMSI2InstallState, etc).
2. Modified my managed extension DLL to set the new properties.
3. Added a Property Comparison Condition to each Feature in the Suite to check the property.
4. Called my managed extension method from the OnBegin Event.
Is there an easier way to do this while still choosing the features to install from my managed extension DLL? When I'm done I'll have 75-100 child installers managed from my Suite.
-hupperts