On Wed, May 04, 2011 at 12:58:09PM -0400, Chris Lord wrote: > Chaining installers is a general no-no and Microsoft recommend you don't > do it. Second, trying to install software in the Cost Finalise stage is > also not a good idea. Installing something using a custom action makes > it very difficult to roll back should the installation fail or be > cancelled and it makes uninstalling your application difficult if not > impossible. Your installer should allow a clean install and also a > clean removal of you application (including DirectX if your applicaiton > installs it) and given the design you are describing, that would be > difficult to achieve. > > If you need to install a second application, the recommended method is > to use a bootstrapper such as dotNetInstaller or WiX's own "Burn" > facility. Its likely to cause you a lot less headaches in the long run. > > Chris
Thanks for this advice. I agree and hope to adopt Burn once WiX 3.6 is finalized. For now I was following the advice given at <http://wix.sourceforge.net/manual-wix3/install_directx9.htm>. Do you think it would be worth adding a note about the inadvisability of installer chaining to that page? As for the solution: the logs produced (with the /l*v option to msiexec) indicated that the sequence of events was happening as follows: 1. Start of RemoveExistingProducts. This fires up the previous versions' installer and tells it to remove itself. 2. Skip InstallDirectX action because condition fails. Good. 3. Properties for the removal are logged, on lines starting with 'Property(N)'. The 'REMOVE' and 'Installed' properties are present. 4. End of RemoveExistingProducts. 5. Start of InstallDirectX. This is where I expected the 'NOT REMOVE' condition to prevent the installer from running, but it doesn't because the 'REMOVE' property is missing, as revealed below. 6. Properties for the failed install are logged. Lines start with 'Property(S)' for the execute sequence, and 'Property(C)' are for the UI sequence. The 'PREVIOUSFOUND' property is present. Setting the condition for the InstallDirectX action to 'NOT INSTALLED AND NOT PREVIOUSFOUND' therefore prevents the action from being running during a Major Upgrade. -- Sam Morris Red Redemption Please consider the fate of the world before printing this email! ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users