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

Reply via email to