Hi Sam, One thing to note....The manual page states the custom action for DirectX runs after InstallFinalize which is right at the end of an installation. You have yours running a lot earlier than that. I don't know the consequences of moving it but you might try just doing as the manual states and see what happens.
As far as the manual page is concerned, it seems to me to be advocating chaining which is a deprecated feature of Windows Installer and something Microsoft advise against doing. Given that's the case, is there something special about DirectX that means it can be installed that way or does indeed the page need updating in some way? Chris On 05/06/2011 08:23 AM, Sam Morris wrote: > 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. > ------------------------------------------------------------------------------ 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