Hi, I posted this question on an older thread and haven't heard anything, so I'm wondering if it got through. Sorry if it did. Here is the older thread for reference: http://www.nabble.com/Major-upgrade---feature-migration-td23222720.html
During a major upgrade some features that are not already installed are being set to Local by MigrateFeatureStates. My product has the option to install any of 4 features, with two defaulting to Local each with a must have subfeature. <Property Id="INSTALLLEVEL" Value="100" /> <Feature Id="Feature1" Level="1"> <Feature Id="Feature1A" Level="1" Display="hidden" InstallDefault=" followParent"> <ComponentGroupRef Id="ComponentGroup1A" /> </Feature> <Feature Id="Feature1B" Level="999”> <ComponentGroupRef Id="ComponentGroup1B" /> </Feature> </Feature> <Feature Id="Feature2" Level="1"> <Feature Id="Feature2A" Level="1" Display="hidden" InstallDefault=" followParent"> <ComponentGroupRef Id="ComponentGroup2A" /> </Feature> <Feature Id="Feature2B" Level="999”> <ComponentGroupRef Id="ComponentGroup2B" /> </Feature> </Feature> <Feature Id="Feature3" Level="999"> <Condition Level="0">(NOT IISMAJORVERSION) AND (NOT REMOVE)</Condition > <ComponentGroupRef Id="ComponentGroup3" /> </Feature> <Feature Id="Feature4" Level="999"> <Condition Level="0">(NOT IISMAJORVERSION) AND (NOT REMOVE)</Condition > <ComponentGroupRef Id="ComponentGroup4" /> </Feature> NOTE: IIS is not installed but I expect that does not affect this example. If I install the product and only select Feature1, Feature1 and Feature1A are installed as expected. However during a major upgrade with MigrateFeatures, it seems to think Feature2 is installed as well (but not Feature2A which it has as Advertise). Feature3 and Feature4 as exepected are not acted upon in MigrateFeatureStates as they were not installed previously. Action ended 18:15:01: CostFinalize. Return value 1. MSI (c) (98:1C) [18:15:01:428]: Doing action: MigrateFeatureStates Action 18:15:01: MigrateFeatureStates. Migrating feature states from related applications Action start 18:15:01: MigrateFeatureStates. MSI (c) (98:1C) [18:15:01:428]: Migrating feature settings from product(s) '{3D25093F-AAB3-4486-B5A4-3FE4981E9A90}' MSI (c) (98:1C) [18:15:01:428]: MigrateFeatureStates: based on existing product, setting feature 'Feature1' to 'Local' state. MSI (c) (98:1C) [18:15:01:522]: MigrateFeatureStates: based on existing product, setting feature 'Feature1A' to 'Local' state. MSI (c) (98:1C) [18:15:01:600]: MigrateFeatureStates: based on existing product, setting feature 'Feature2' to 'Local' state. MSI (c) (98:1C) [18:15:01:616]: MigrateFeatureStates: based on existing product, setting feature 'Feature2A' to 'Advertise' state. Action ended 18:15:01: MigrateFeatureStates. Return value 1. Here is my sequence for reference: ShowError -3 ShowCancel -2 ShowSuccess -1 AppSearch 100 FindRelatedProducts 101 LaunchConditions (NOT (REMOVE="ALL")) 102 ValidateProductID 700 CostInitialize 800 FileCost 900 CostFinalize 1000 MigrateFeatureStates 1200 DTFCustomActionThatReliesOnFeatureStates (NOT (REMOVE="ALL")) 1201 I have a few question regarding this: 1. Why does it think Feature2 is installed? 2. Why does it have Feature2A as Advertise (I would expect Absent) 3. Once I get this working I'll need my DTF custom action to check the states. Does MigrateFeatureStates set the FeatureInfo.CurrentState or FeatureInfo.RequestState or both? Thanks! Shawn ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users