Features... How can I hide a Feature?

For all your non-technical questions.
Steve
Posts: 117
Joined: Fri Jun 16, 2006 9:51 pm
Location: Canada eh

Features... How can I hide a Feature?

Postby Steve » Fri Nov 10, 2006 10:55 am

Can anyone tell me how I can specify that a feature is to be hidden from the user interface yet still get installed?

My project designs always group files to be installed into Features. This is done so that large projects are easier to maintain.
A Multi language Help file is a good example of this. Image having French, English and Spanish help files in addition to the Common Help File components. To do this I would create 4 Features under parent Feature called Help:
English
French
Spanish
Common Help Components

I need the user to be able to select which help language to install but I need to always install the 'Common Help Components' AND also have it hidden from the user so that they cannot disable it.

Please don't suggest that I place the common help file components into the 'Feature Independent' area of the 'Files' screen or the parent 'Help' feature. Doing this would just lump those components in with hundreds of other components making project management an onerous task.

I hope you will forgive me in advance for bringing up the names InstallShield and Wise (because they have become such terrible programs and are owned by such arrogant companies), but in both those installers making a Feature hidden while still having it remain a required installation component seemed quite easy to do via the UI (ie- No scripting required.)

Perhaps I am missing something simple?

CandiceJones
Posts: 904
Joined: Thu Dec 22, 2005 7:03 pm
Contact:

Postby CandiceJones » Sat Nov 11, 2006 2:37 pm

Actually, the suggestion would be to add these to Feature Independent. The visual Files editor might indeed get cluttered, but if you switch to the MSIcode view, you can organize everything neatly and cleanly. Because InstallShield and Wise are limited to regular Windows Installer components and features, they really need a way to "hide" features. InstallAware setups are not fettered by these limitations - what happens in your MSIcode script is exactly what happens at runtime, what you see is what you get without restrictions. So there is no need to create hidden components.

If you want to delete a component, that you can also do that with the Delete Component command.

Remember, the visual views just render whats already in the MSIcode visually, and they update the underlying MSIcode for you. If you play with the MSIcode and comment out parts of it, you will even be able to achieve the organization you are after in the visual views (ex: just comment out the If that checks whether the feature is selected; and also use Delete Component before showing the feature selection dialog, so the feature is effectively hidden).
Candice Jones
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/

Steve
Posts: 117
Joined: Fri Jun 16, 2006 9:51 pm
Location: Canada eh

Postby Steve » Sun Nov 12, 2006 3:35 pm

Hi Candice, thanks very much for your informative reply.
Working on a Saturday... talk about dedication!

I'm not sure that I understand the functionality of the 'Delete Component' command. I would have thought that it's purpose was to actually delete a component, but if I understand you it's real purpose is actually to 'hide' a feature/component from the user selection list?

If that is the case (and if you are trying to compete with Installshield for business), then why not make life easier (and faster) for setup developers by provding an option in the UI to 'Hide Feature'?

Thanks again for your suggestion, I believe that it will work great for me.

Steve

tstewart
Posts: 2
Joined: Wed Nov 15, 2006 1:35 pm

Postby tstewart » Wed Nov 15, 2006 1:40 pm

The suggested work around will work but what I would like to see is not a hidden option but a required option. That way the feature is in the list but the user can not unselect it. I am currently looking at InstallAware as a replacement for InstallShield but the project I am working on some items that are required but they want the user to see them and know they are getting installed.


Todd

CandiceJones
Posts: 904
Joined: Thu Dec 22, 2005 7:03 pm
Contact:

Postby CandiceJones » Wed Nov 15, 2006 2:20 pm

You can override selection states using Set Component State, and inform the user with a MessageBox that they really need that component.
Candice Jones

InstallAware

Home of The Next Generation MSI Installer

Get your free copy today - http://www.installaware.com/

tstewart
Posts: 2
Joined: Wed Nov 15, 2006 1:35 pm

Postby tstewart » Wed Nov 15, 2006 3:12 pm

CandiceJones wrote:You can override selection states using Set Component State, and inform the user with a MessageBox that they really need that component.



The message box would have to be displayed after they hit the next button correct? It would be a lot nicer if the feature could be set to where the user could not uncheck it.


Todd


Return to “Non-Technical”

Who is online

Users browsing this forum: No registered users and 30 guests