Mike,

This is perfect. Not only it answers my question, it clarified three  
different concepts I had not grasped.

Thanks a million,

g

On Apr 26, 2007, at 4:44 PM, Mike Dimmick wrote:

> InstallUISequence typically runs in its entirety before
> InstallExecuteSequence is processed (the execute sequence is  
> processed by
> the ExecuteAction action). You can't set a property in the execute  
> sequence
> and expect its value to appear in the UI sequence. You should  
> schedule your
> custom action in the UI sequence before your Show action.
>
> Public properties are copied from the client process to the server  
> process,
> but not in the other direction, which is I think what you're trying  
> to do
> here.
>
> If you need the property in the execute sequence as well, it needs  
> to be a
> public property (ALLCAPS, as this one is), and you should schedule the
> custom action in the execute sequence as well so that your install  
> still
> works in no-UI mode (msiexec /qn). If you want it only to run once,  
> set
> CustomAction/@Execute to "firstSequence".
>
> -- 
> Mike Dimmick
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of WiX'ed
> Sent: 26 April 2007 21:24
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] Property Visibility and Custom Actions
>
> Given a property:
>
> <Property Id='MYPROPERTY' Value='0' />
>
> I have a custom action that sets it to different values depending on
> what it finds:
>
> <CustomAction Id='SetMyProperty' BinaryKey='HelperDLL'
> DllEntry='SetMyProperty' />
>
> <InstallExecuteSequence>
>       <Custom Action='SetMyProperty' After='ValidateProductID'>NOT
> Installed</Custom>
> </InstallExecuteSequence>
>
> I need to show a dialog (among other things) depending on the value
> of this property:
>
> <InstallUISequence>
>       <Show Dialog="MyDialog" After='ExecuteAction'>MYPROPERTY = 1</Show>
> </InstallUISequence>
>
> The problem is that no matter what value the custom action sets for
> MYPROPERTY, it is always 0 (whatever I defined at the top or not
> defined at all if I don't) when the dialog 'MyDialog' is supposed to
> run.
>
> The msiexec log shows MYPROPERTY being properly set by the custom
> action:
>
> <...snip...>
> MSI (s) (DC!0C) [15:31:05:718]: PROPERTY CHANGE: Modifying MYPROPERTY
> property. Its current value is '0'. Its new value: '1'.
> <...snip...>
>
> But I see these two lines showing the different values:
>
> <...snip...>
> Property(S): MYPROPERTY = 1
> <...snip...>
> Property(C): MYPROPERTY = 0
> <...snip...>
>
> I assume these to be "Client" and "Server". How do I make this work?
> I'm sorry if this is simple but I'm still having a hard time grasping
> MSI.
>
> TIA
>
> g
>
> ---------------------------------------------------------------------- 
> ---
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to