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