[wix-users] feature based MSI not removing all files on uninstall, some files missing on upgrade

Steve Ogilvie SOGILVIE at msn.com
Wed Jan 11 08:50:52 PST 2017


Hi all,

I have a problem with a feature based install, where the feature tree is not shown it is code within the wxs.

I was mandated to bring 12 MSI's (6 32 bit and 6 64 bit) to 2 MSI (a 32 bit MSI and a 64 bit MSI)

The MSI's had 1 merge module and half a dozen WiX libraries...

so we have a product where we have 3 features that are installed always based on the bitness of the OS (a client service, plugins and another service) and 3 features that are installed based on what the user had selected via checkboxes on the bundle.

The 2 MSI's are selected to run by install conditions within the bundle, on a 64 bit system with 32 bit Office both MSI's can run....

I pass the variables to the 3 checkboxes to the MSI (INSTALLCLIENT_X)...

I have the 3 features set to:

<Feature Id="Feature_X"
Title="A Client"
Description="blah blah."
Level="0"
Display="expand"
ConfigurableDirectory="DIRECTORY_PATH_CLIENT_X">
<ComponentGroupRef Id="ProductComponents_X" />
<ComponentRef Id="Cmp_RemoveDPCDir_X"/>
<Condition Level="1"><![CDATA[INSTALLCLIENT_X=1 AND FOUNDPRODUCTPLATFORM="x86"]]></Condition>
</Feature>

Where 'X' is 1 of the 3 features that the user can select to install, by default all three checkboxes are selected (all 3 to be installed)

I have the feature set to a condition level of '1' so if:
1. the checkbox is selected (var INSTALLCLIENT_X)
2. the variable FOUNDPRODUCTPLATFORM is equal to 'x86' ('x64' on the 64 bit MSI) then change the feature to a level of 1 to install it.

FOUNDPRODUCTPLATFORM is a variable that is set by a custom action that determines the bitness of Office, 2 of the 3 features are add ins for Office... so if the OS is 64 bit but Office is 32 bit, the feature must be selected to be installed AND the variable FOUNDPRODUCTPLATFORM must be set to 'x86'

I have the 3 features (based on checkbox or cmd line param of "INSTALLCLIENT_X=1 or 0 based on if you want to install the feature or not) using a Group component that has all of its fileset and each of those 3 features are installed to different folders.


Issues:

1. on uninstall some files remain behind from 2 of the features that are condition based i.e. Feature_X and Feature_Y while Feature_Z which condition is based on OS bitness is uninstalled

2. On an upgrade one of the features is missing 7 files that are not installed but are part of the <ComponentGroupRef Id="ProductComponents_X" />
The previous MSI did not use ComponentGroupRef... all the components where listed in the main feature
so to recap...

previous install had 12 MSI's (32 bit and 64 bit 6 each)
previous install used WiX libraries in all 12 but now only 1 feature uses shared WiX Library
previous install has 1 merge module

New install

now only 2 MSI's (a 32 bit and a 64 bit)
each Office add in is a Feature... the features use ComponentGroupRef instead of multiple components within the feature

Any idea why on uninstall files are left behind, and upgrade doesn't install all the files??

Any help would be really appreciated...

Steve



More information about the wix-users mailing list