[wix-users] feature based MSI not removing all files on uninstall, some files missing on upgrade [P]
Steven Ogilvie
Steven.Ogilvie at titus.com
Wed Jan 11 11:20:23 PST 2017
Classification: Public
I only have
1 binary (DLL or EXE) per component
What do you mean by REP? " Is REP scheduled early in each MSI?"
If Repair, I have disabled REPAIR since we use quite a few custom actions from a Custom Action DLL (and have another DLL that is called from that Custom Action DLL)
Our MSI's only support install/uninstall and major upgrade
The majority of the Keypaths are in the File element
If the component contains a registry element the keypath is in the component element
Within the ComponentGroupRef's I do have some Components that are conditional i.e.:
1.
<Component Id="cmp_X30" Guid="{Some GUID}" Permanent="no" Shared="no">
<File Id="file_X30" KeyPath="yes" Source="$(var.SourcePath)\X30.dll" >
<Class Id="{Another GUID}" Context="InprocServer32" Description="$(var.X30_Description)" ThreadingModel="apartment">
<ProgId Id="MyID.Connect" Description="$(var.X30_Description)" />
</Class>
</File>
<Condition>
<![CDATA[NOT VersionNT64 OR FOUNDPRODUCTPLATFORM = "x86"]]>
</Condition>
</Component>
2.
<!-- For OEM resources -->
<Component Id="cmp_ Resources_X" Guid="{some GUID}" KeyPath="yes">
<?if $(env.OEM_BRANDING) = 0 ?>
<File Id="file_Resources_X" Source="$(env.SomePath)\Resources\Resources.dll"/>
<?else ?>
<File Id="file_OEM1_Resources_X" Source="$(env.SomePath)\OEM1.Resources\Resources.dll"/>
<?endif ?>
</Component>
Cheers,
Steve
This message has been marked as Public by Steven Ogilvie on January 11, 2017 2:20:21 PM. Classification provided by TITUS.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Phill Hogland
Sent: January 11, 2017 2:01 PM
To: WiX User List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] feature based MSI not removing all files on uninstall, some files missing on upgrade
I think I would set aside the 'upgrade' concerns and focus on resolving concerns about install - uninstall. Then I would focus on install - repair, after manually removing some resource to validate repair prior to looking at an 'upgrade'.
Is REP scheduled early in each MSI?
Are the Conditions implemented in transitional components?
I don't think the use of ComponentGroupRef has any impact as that is a wix authoring semantic and not related to the actual MSI behavior. You should be able to open the MSI with orca, after authoring it with or without ComponentGroupRef, and see the same MSI Component and File table entries. I suspect the question is what is the keypath for each of the missing files and were they authored following one resource per component? A verbose log should indicate why the install/uninstall of each file was skipped.
________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Steve Ogilvie <SOGILVIE at msn.com>
Sent: Wednesday, January 11, 2017 10:50:52 AM
To: WiX User List
Subject: [wix-users] feature based MSI not removing all files on uninstall, some files missing on upgrade
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
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-users
mailing list