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
- :
- bug with multiple release flags and MSI chaining?
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
‎Nov 15, 2011
01:23 PM
bug with multiple release flags and MSI chaining?
I'm calling this likely a bug because I'm seeing different behavior in my 32-bit basic MSI project vs. the complementary 64-bit basic MSI project.
In both cases I have 4 Product configs, and 2 sets of release flags:
US and INTL
A and B (names simplified for the post)
I have a chained .msi package in each project which should only be included for release flags "INTL,A".
I'm working with a new build machine where these chained packages have not been built yet, but I wanted to test out a release that shouldn't need them, where release flags are set as "US,A".
My 32-bit built successfully, but when trying to build the 64-bit project, I get a build error:
Could not stream the file {path to that chained msi} into the ISChainPackageData table.
I thought at first I was mistaken about how flags work, and that just having "A" in both the release and chained config would mean it should be included, despite the US vs. INTL flags not matching. However, since it behaves as I expected in the 32-bit project, I'm not sure what to make of this.
Does anyone know if this is a known bug, and if so, if there are plans to address it in 2012 SP1?
I have components that only need to be set to A vs. B, or US vs. INTL, so I'm hoping I don't have to work around this issue with additional redundant flags (ie. A_US, A_INTL, etc.).
As a side note, I tried the release flags in the release config, in the product configuration (as PC flags), and even duplicated in both, with same error when I build the 64-bit project.
In both cases I have 4 Product configs, and 2 sets of release flags:
US and INTL
A and B (names simplified for the post)
I have a chained .msi package in each project which should only be included for release flags "INTL,A".
I'm working with a new build machine where these chained packages have not been built yet, but I wanted to test out a release that shouldn't need them, where release flags are set as "US,A".
My 32-bit built successfully, but when trying to build the 64-bit project, I get a build error:
Could not stream the file {path to that chained msi} into the ISChainPackageData table.
I thought at first I was mistaken about how flags work, and that just having "A" in both the release and chained config would mean it should be included, despite the US vs. INTL flags not matching. However, since it behaves as I expected in the 32-bit project, I'm not sure what to make of this.
Does anyone know if this is a known bug, and if so, if there are plans to address it in 2012 SP1?
I have components that only need to be set to A vs. B, or US vs. INTL, so I'm hoping I don't have to work around this issue with additional redundant flags (ie. A_US, A_INTL, etc.).
As a side note, I tried the release flags in the release config, in the product configuration (as PC flags), and even duplicated in both, with same error when I build the 64-bit project.
(2) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 23, 2011
12:43 PM
When working correctly, an item is included in any of the following three cases:
So if there are cases where you want to include the item only when both A and US are defined (yet exclude it when A and INTL -- or B and US -- are defined), you will need an additional flag for that usage.
- the combined set of flags listed in the release and product configuration being built is empty
- the set of flags listed on an item is empty
- there is a non-empty intersection of the two above sets
So if there are cases where you want to include the item only when both A and US are defined (yet exclude it when A and INTL -- or B and US -- are defined), you will need an additional flag for that usage.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 28, 2011
04:25 PM
Thanks for the overview. I'm not sure why my 32-bit project wasn't causing issues (and hence led me down a path of false reasoning), but it became clear later that it was in fact behaving the same way (keying off a non-empty intersection as you mentioned above).
I added an extra set of flags (i.e. A_US, A_INTL) specifically for the chained MSIs and that works fine.
I added an extra set of flags (i.e. A_US, A_INTL) specifically for the chained MSIs and that works fine.
