I think the problem is that you have defined the fist "deferred" CA to be 
Execute=immediate. It will execute during script creation, while the 
Execute=deferred one will only execute when the script is being processed.

-Brian

From: James Constable [mailto:[email protected]]
Sent: Friday, July 15, 2011 5:04 AM
To: [email protected]
Subject: [WiX-devs] CAQuietExec & Custom Action DLL excute's out of order


I am using WiX version 3.5.2519.0
If you have a Custom Action DLL and a CAQuietExec Custom Action that needs 
other Windows Installer properties; set them to execute one after the other, 
they do not.The CAQuietExec Custom Action that needs other Windows Installer 
properties executes late in the install process, does not execute in the order 
specified. Followed: http://wix.sourceforge.net/manual-wix3/qtexec.htm

<CustomAction Id="QtExecDeferredExampleWithProperty_Cmd" 
Property="QtExecDeferredExampleWithProperty"

              Value="&quot;[#MyExecutable.exe]&quot;" Execute="immediate"/>

<CustomAction Id="QtExecDeferredExampleWithProperty" BinaryKey="WixCA" 
DllEntry="CAQuietExec"

              Execute="deferred" Return="check" Impersonate="no"/>

.

.

.

<InstallExecuteSequence>

    <Custom Action="QtExecDeferredExampleWithProperty_Cmd" 
After="CostFinalize"/>

    <Custom Action="QtExecDeferredExampleWithProperty" 
After="TheActionYouWantItAfter"/>

</InstallExecuteSequence>

This is the type Custom Action (above) that does not execute in the order I 
specified
using the 'After=' attribute.
I have even made a simple WXS file, same thing happens, in part:
      <Binary Id="MyCustomAction.dll" 
SourceFile="..\..\CustomAction1\CustomAction1\obj\x86\Release\CustomAction1.CA.dll"
 />

      <CustomAction Id="MyCustomAction1" BinaryKey="MyCustomAction.dll"
        DllEntry="CustomAction1" Execute="deferred" />

      <CustomAction Id="MyCustomAction2" BinaryKey="MyCustomAction.dll"
        DllEntry="CustomAction2" Execute="deferred" />

      <CustomAction Id="QtExecDeferredExampleWithProperty_Cmd" 
Property="QtExecDeferredExampleWithProperty"
                    Value="&quot;net&quot;" Execute="immediate"/>
      <CustomAction Id="QtExecDeferredExampleWithProperty" BinaryKey="WixCA" 
DllEntry="CAQuietExec"
                    Execute="deferred" Return="ignore" Impersonate="no"/>

      <Property Id="QtExecDeferredExample" Value="&quot;net&quot;"/>
      <CustomAction Id="QtExecDeferredExample" BinaryKey="WixCA" 
DllEntry="CAQuietExec"
                    Execute="deferred" Return="ignore" Impersonate="no"/>

..
..
..
      <InstallExecuteSequence>
        <Custom Action="QtExecDeferredExampleWithProperty_Cmd" 
After="CostFinalize"/>

        <Custom Action='MyCustomAction1' After='InstallFiles' />
        <Custom Action="QtExecDeferredExample" After="MyCustomAction1"/>
        <Custom Action='MyCustomAction2' After='QtExecDeferredExample' />
        <Custom Action="QtExecDeferredExampleWithProperty" 
After="MyCustomAction2"/>
      </InstallExecuteSequence>

The Custom Action DLL is a shell that just logs a message.

Tried changing deffered to immediate and vica versa for the 'Execute=' 
attribute, no difference.

How can I make there Custom Actions actually execute in order?

Thanks,

JamesC


------------------------------------------------------------------------------
AppSumo Presents a FREE Video for the SourceForge Community by Eric 
Ries, the creator of the Lean Startup Methodology on "Lean Startup 
Secrets Revealed." This video shows you how to validate your ideas, 
optimize your ideas and identify your business strategy.
http://p.sf.net/sfu/appsumosfdev2dev
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to