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: Components, Extensions and Verbs
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 16, 2008
12:00 AM
Components, Extensions and Verbs
I was wondering if someone would be willing/able to help me understand something that I've never dug deeply into.
I have a requirement to create an install with:
Features: Viewer, Editor
Components: Viewer, Editor
File Extension .FOO
The features are not mutually exclusive.
The goal is if both features are installed, the default verb for .FOO is to edit with the Editor component and a Secondary verb is to view it with the Viewer component.
If only the Viewer feature is installed, viewing with the viewer component should be the default action.
Is this possible with MSI? The schema is confusing me. The extension table has PK columns of Extension and Component_. This suggests to me that a file extension can be served by multiple providers.
But the verb table has PK columns of Extension_ and Verb. This almost makes sense as a file extension can have multiple verbs.
But what is confusing me is how do I associate the verb to the correct component? The SDK doco makes reference to "the component that owns the verb." but there is no join to the component table and the join via the extension table seems ambigious.
I have a requirement to create an install with:
Features: Viewer, Editor
Components: Viewer, Editor
File Extension .FOO
The features are not mutually exclusive.
The goal is if both features are installed, the default verb for .FOO is to edit with the Editor component and a Secondary verb is to view it with the Viewer component.
If only the Viewer feature is installed, viewing with the viewer component should be the default action.
Is this possible with MSI? The schema is confusing me. The extension table has PK columns of Extension and Component_. This suggests to me that a file extension can be served by multiple providers.
But the verb table has PK columns of Extension_ and Verb. This almost makes sense as a file extension can have multiple verbs.
But what is confusing me is how do I associate the verb to the correct component? The SDK doco makes reference to "the component that owns the verb." but there is no join to the component table and the join via the extension table seems ambigious.
(3) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 16, 2008
05:34 PM
If you have a record in the Verb table that links to a foreign key in the Extension table, the Extension table record contains the component and feature association used to register the verb at runtime (the relationship to feature/component is indirect; the Registry Table Group diagram may help). Multiple Verb table entries using the same Extension foreign key would have the effect of being associated to the same feature/component. The verb with the lowest sequence number will become the default verb for the extension (although it is unclear if this works when different verbs for the same extension are in different components).
You can use the Advanced Settings|File Types view available for each component in the Setup Design or Components view to abstract the table information into something a little easier to understand.
You can use the Advanced Settings|File Types view available for each component in the Setup Design or Components view to abstract the table information into something a little easier to understand.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 16, 2008
08:36 PM
I'm guessing that multiple verbs belonging to multiple components for the same file extension isn't supported?
I've never tried this before and I'm hoping to get a solid answer before running off reservation with the registry table and/or custom actions.
I've never tried this before and I'm hoping to get a solid answer before running off reservation with the registry table and/or custom actions.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 16, 2008
11:05 PM
The limiting factor does appear to be the Verb table. It is possible to have the same extension across multiple components in the Extension table, but attempting to use the same extension and verb in the Verb table will duplicate primary keys. The tables probably are designed this way for advertisement purposes (a given product code/feature/component code/keyfile combination can only be used once). The Extension table does impose a similar limitation by only allowing one extension/component combination with a given feature; anything beyond the one combination will duplicate primary keys.
The simplest solution to this issue would likely be to use the Registry table to create the extension and verb keys per component.
The simplest solution to this issue would likely be to use the Registry table to create the extension and verb keys per component.
![](/skins/images/3B39CE851FDD5528C393F146EB70A2D0/responsive_peak/images/icon_anonymous_message.png)