This seems to have worked - thanks very much.

David

> -----Original Message-----
> From: Blair [mailto:os...@live.com]
> Sent: 22 December 2009 13:45
> To: 'General discussion for Windows Installer XML toolset.'
> Subject: Re: [WiX-users] Setting properties in custom actions
>
>
> The <Condition> on the components is evaluated during
> CostFinalize, not
> CreateShortcuts. You don't get the shortcuts because the components
> installing the shortcuts are not being installed due to the
> false condition
> on them.
>
> I would recommend moving your CheckApplicationLicence custom
> action sequence
> to before CostInitialize (as per the MSDN page on the
> CostFinalize action).
>
> -----Original Message-----
> From: David Allen [mailto:david.al...@1spatial.com]
> Sent: Tuesday, December 22, 2009 3:45 AM
> To: 'wix-users@lists.sourceforge.net'
> Subject: [WiX-users] Setting properties in custom actions
>
> I am updating an installer for a product that provides
> multiple applications
> and want to change it so that it creates shortcuts only for
> applications
> that have a valid licence.
>
> The basic approach is to define each shortcut in a separate
> component, to
> set a condition on the component based on the value of a
> property and to
> execute a custom action to set an appropriate value for the
> property based
> on the licence before the shortcuts are created.
>
> If I set different values when defining the properties, I can see the
> correct shortcuts get created. However, any changes to
> properties made by
> the custom action have no effect.
>
> Within the Product element
> - define the applications for which we may wish to create shortcuts
>     <?define shortcuts=manage;translate;LAMPS2?>
>
> - define a property for each application
>     <?foreach _cut in $(var.shortcuts)?>
>       <Property Id="$(var._cut)" Value="0" />
>     <?endforeach?>
>
> - declare the custom action
>     <CustomAction Id="CheckApplicationLicence"
>                   BinaryKey="CheckLicence.vbs"
>                   Return="ignore"
>                   VBScriptCall="CheckLicence" />
>     <Binary Id="CheckLicence.vbs"
>
> SourceFile="$(var.goth_product_root)\config\CheckLicence.vbs" />
>
> - arrange for it to be invoked on install
>     <InstallExecuteSequence>
>        <Custom Action="CheckApplicationLicence"
>                After="InstallFiles">NOT (REMOVE = "ALL")
>        </Custom>
>     </InstallExecuteSequence>
>
> - create the desktop shortcuts
>     <Property Id="INSTALL_DESKTOP_SHORTCUTS" Value="1"/>
>     <DirectoryRef Id="TARGETDIR">
>       <Directory Id="DesktopFolder">
>         <?foreach _cut in $(var.shortcuts)?>
>           <Component Id = "C_DesktopShortCut.$(var._cut)" Guid="*">
>           <Condition>
>             INSTALL_DESKTOP_SHORTCUTS AND $(var._cut) = 1
>           </Condition>
>
>           <?define _prefix="Desktop"?>
>           <?include $(var._cut)_shortcut.wxi?>
>           <?undef _prefix?>
>
>           <RegistryValue Root="HKCU"
>                          Key="Software\1Spatial\Developer\Installed"
>                          Name="DesktopShortcuts.$(var._cut)"
>                          Type="integer"
>                          Value="1"
>                          KeyPath="yes"/>
>           </Component>
>         <?endforeach?>
>       </Directory>
>     </DirectoryRef>
>
> The custom action VBScript is:
>
> Option Explicit
>
> Function CheckLicence()
>    On error resume next
>
>    MsgBox("CheckLicence: " + Session.Property("LAMPS2"))
>    Session.Property("LAMPS2") = "1"
>    Session.Property("translate") = "1"
>    MsgBox("CheckLicence: " + Session.Property("LAMPS2"))
> End Function
>
> I see both message boxes pop up, showing that the property has been
> modified.  In the log file, it appears this has been executed
> before the
> shortcuts:
>
> InstallFiles: File: Copying new files,  Directory: ,  Size:
> Action ended 11:12:25: InstallFiles. Return value 1.
> Action 11:12:25: CheckApplicationLicence.
> Action start 11:12:25: CheckApplicationLicence.
> Action ended 11:12:29: CheckApplicationLicence. Return value 1.
> Action 11:12:29: CreateShortcuts. Creating shortcuts
> Action start 11:12:29: CreateShortcuts.
> CreateShortcuts: Shortcut: Creating shortcuts
> Action ended 11:12:29: CreateShortcuts. Return value 1.
> Action 11:12:29: WriteRegistryValues. Writing system registry values
>
> If I start with all the properties having a value of 0 and
> set them to 1 in
> the custom action, no shortcuts are created.  If I start with
> a value of 1
> and set them to 0 in the custom action, all the shortcuts are created.
>
> I presume I have made some sort of simple mistake, but I
> can't see what it
> is.  Help much appreciated.
>
> I am using the final (July) release of WiX 3 on Windows XP SP2 32-bit.
>
> David
>
> --
> David Allen,
> Telephone: +44 (0)1223 420 414
>
>
>
> 1Spatial Group Limited; Registered in England No. 4785688 VAT Reg. No.
> 816329821; Registered Office: Cavendish House; 6 Cambridge
> Business Park;
> Cambridge; CB4 0WZ; United Kingdom
>
> http://www.1spatial.com/
>
>
>
> 1Spatial: unlocking data, empowering business
> Making geospatial data current, accessible, easily shared and trusted
>
> www.1spatial.com
>
> 1Spatial Group Limited; Registered in England No. 4785688 VAT Reg. No.
> 816329821; Registered Office: Tennyson House; Cambridge Business Park;
> Cambridge; CB4 0WZ; United Kingdom
>
>
> IMPORTANT NOTICE
>
> This e-mail and any files transmitted with it are
> confidential and intended
> solely for the use of the individual or entity to whom they
> are addressed.
> If you have received this e-mail in error please notify the sender
> immediately and delete this e-mail from your system. Please
> note that any
> views or opinions presented in this e-mail are solely those
> of the author
> and do not necessarily represent those of 1Spatial Group Limited, its
> subsidiaries or associated companies, except where the author
> specifically
> states them to be the views of 1Spatial Group Limited, its
> subsidiaries or
> associated companies.
>
> 1Spatial Group Limited, its subsidiaries and associated
> companies will not
> be held liable for any legally binding obligations that are
> not the subject
> of an official 1Spatial purchase order or as part of a
> contract signed by a
> director of one of the aforementioned companies.
>
> Although the company has taken reasonable precautions to
> ensure no viruses
> are present in this email, the company cannot accept
> responsibility for any
> loss or damage arising from the use of this email or
> attachments. You should
> understand and accept that, when communicating with us by
> e-mail, it is not
> a totally secure communications medium.
>
> --------------------------------------------------------------
> --------------
> --
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app
> distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> --------------------------------------------------------------
> ----------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app
> distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to