I solved this same issue with a custom action on the next button of the
feature selection dialog.  I tried solving it within Wix/Windows Installer
but was unable to.

The pseudo-code is something like this...

      <Publish Dialog="CustomizeDlg" Control="Next" Event="DoAction"
Value="CAMustSelectOne" Order="1">1</Publish>
      <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog"
Value="VerifyReadyDlg" Order="2"><![CDATA[ATLEASTONESELECTED <>
"0"]]></Publish>

Custom Action looked something like this (error handling and exception
management removed for brevity):

// these are all hidden or "container only" features,
// if they are selected for install, they are not considered a "real"
feature
private static readonly string[] IgnoredFeatures = { "Server", "Logs",
"Data", "WebSites", "WindowsServices", "Tools" };

[CustomAction]
public static ActionResult MustSelectOne(Session session)
{
    ActionResult installResult = ActionResult.Success;

    // assume we success until told otherwise
    session["ATLEASTONESELECTED"] = "1";

    if (NoFeaturesSelected(session))
    {
        session["ATLEASTONESELECTED"] = "0";
        MessageBox.Show(new Form() { TopMost = true }, "One or more
features must be selected");
    }

    return installResult;
}

private static bool NoFeaturesSelected(Session session)
{
    return session.Features.Where(feature =>
!IgnoredFeatures.Contains(feature.Name)).All(feature =>
feature.RequestState != InstallState.Local);
}


On Mon, Sep 15, 2014 at 8:55 AM, Noel Farrugia <noel.farru...@outlook.com>
wrote:

> I need to "access" MyFeature in the UserInterface code to make a condition
> such that if no feature is selected for installation the "Next" button can
> be disabled.
>
> Thanks and Regards,
> Noel
>
> > From: jocoo...@jackhenry.com
> > To: wix-users@lists.sourceforge.net
> > Date: Mon, 15 Sep 2014 12:24:04 +0000
> > Subject: Re: [WiX-users] Check that at least one Feature is selected
> >
> > Currently, there is limited scoping of properties in Wix 3.x.  The only
> problem you may sometimes run into is when a property crosses the UI to
> Execute boundary--to do that, you'll need a public secure property.
> >
> > So, how exactly do you want to "access" MyFeature?
> >
> > --
> > John Merryweather Cooper
> > Senior Software Engineer | Enterprise Service Applications | Continuing
> Development
> > Jack Henry & Associates, Inc.® | Lenexa, KS  66214 | Ext:  431050 |
> jocoo...@jackhenry.com
> >
> >
> >
> > -----Original Message-----
> > From: Noel Farrugia [mailto:noel.farru...@outlook.com]
> > Sent: Monday, September 15, 2014 7:17 AM
> > To: wix-users@lists.sourceforge.net
> > Subject: [WiX-users] Check that at least one Feature is selected
> >
> > Hi all,
> >
> > I have a setup with feature selection enabled like this one now, in a
> file called "MyInstaller.wxs",
> >
> > <Feature Id="MyFeature"
> >
> >
> >              Title="MyTitle"
> >
> >
> >              Description="Desc...."
> >
> >
> >              Level="1" AllowAdvertise="no" Absent="allow"
> TypicalDefault="install">
> >
> >
> >
> >       <ComponentGroupRef Id="Test Component"/>
> >       .
> >       .
> >       .
> >     </Feature>
> >
> > The code that handles the User interface is in another file called
> UserInterface.wxi.
> > I know that to check if a certain feature is selected I need to do
> <[CDATA[&MyFeature=3]]> in the "Publish" line example:
> >
> > <Publish Property="FeatureChoiceDlgPrev"
> Value="InstallWelcomeDlg">$(var.allowFeatureChoice) = 1</Publish>
> >
> > now my question is how can I access the "MyFeature" which is located in
> "MyInstaller.wxs" in the "UserInterface.wxi"file ?
> >
> > Thanks a lot for your help :)
> >
> > Noel
> >
> >
> ------------------------------------------------------------------------------
> > Want excitement?
> > Manually upgrade your production database.
> > When you want reliability, choose Perforce Perforce version control.
> Predictably reliable.
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> > NOTICE: This electronic mail message and any files transmitted with it
> are intended
> > exclusively for the individual or entity to which it is addressed. The
> message,
> > together with any attachment, may contain confidential and/or privileged
> information.
> > Any unauthorized review, use, printing, saving, copying, disclosure or
> distribution
> > is strictly prohibited. If you have received this message in error,
> please
> > immediately advise the sender by reply email and delete all copies.
> >
> >
> >
> ------------------------------------------------------------------------------
> > Want excitement?
> > Manually upgrade your production database.
> > When you want reliability, choose Perforce
> > Perforce version control. Predictably reliable.
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> ------------------------------------------------------------------------------
> Want excitement?
> Manually upgrade your production database.
> When you want reliability, choose Perforce
> Perforce version control. Predictably reliable.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>



-- 
Tony
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to