I finally found a solution to this at
http://www.joyofsetup.com/2007/05/30/feature-conditions-and-ui/ and am
posting my solution should anyone in the future find this post.

In my main file (Product.wxs) the components to install are defined as
follows:

    <!-- Identify ComponentGroups to be installed -->
    <Feature Id="ProductFeature" Title="HRActions Setup" Level="1"
ConfigurableDirectory="INSTALL_FOLDER">
      <ComponentGroupRef Id="BinComponents" />
      <ComponentGroupRef Id="ConfigComponents" />
      <ComponentGroupRef Id="ScriptComponents" />
      <ComponentRef Id="HRActionsFolderPermssions" />
      <ComponentRef Id="ProgramMenuDir" />

      <!-- The /web components are generated automatically using pre-build
event  -->
      <ComponentGroupRef Id="HRActionsComponents" />
      <ComponentGroupRef Id="HRActionsComponentsSS" />

      <!-- Create a separate 'Feature' so that we can selectively remove it
using 'InstallWebAppDlg' -->
      <Feature Id="IISInstallation" Level="1">
        <ComponentGroupRef Id="HRActionsWebsiteIISConfiguration" />
      </Feature>

    </Feature>


I have a custom UI screen (InstallWebAppDlg.wxs) that asks if the user
wants the default IIS setup installed.  If the user selects No the 'Next'
button control removes the feature 'IISInstallation'

<Fragment>
    <UI>
      <Property Id="CONFIGURE_IIS_YES_NO" Secure="yes" Value="0" />

      <Dialog Id="InstallWebAppPoolDlg" Width="370" Height="270"
Title="[ProductName] Setup" NoMinimize="yes">

        <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56"
Height="17" Text="&amp;Back">
          <Publish Event="NewDialog" Value="AcctInfoDlg">NOT
Installed</Publish>
        </Control>
        <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56"
Height="17" Default="yes" Text="&amp;Next">
          <!-- AddLocal=ALL tells the installer to install all the features
specified -->
          <!-- The feature 'IISInstallation' (found in Product.wxs) is
Removed from installation if the NO radio button is selected -->
          <Publish Event="AddLocal" Value="ALL">1</Publish>
          <Publish Event="Remove"
Value="IISInstallation">CONFIGURE_IIS_YES_NO = 0</Publish>
          <Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        </Control>
        <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56"
Height="17" Cancel="yes" Text="Cancel">
          <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
        </Control>

        <Control Id="Description" Type="Text" X="25" Y="23" Width="280"
Height="15" Transparent="yes" NoPrefix="yes" Text=" " />
        <Control Id="Title" Type="Text" X="15" Y="6" Width="200"
Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}ISS
Configuration" />
        <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370"
Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
        <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370"
Height="0" />
        <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370"
Height="0" />
        <Control Id="DescriptionLabel" Type="Text" X="20" Y="60"
Width="290" Height="13" Text="By default, this installation will create a
dedicated web site with its own application pool and virtual directories to
maximize performance and reduce unwanted interactions." />
        <Control Id="ConfigureIISRadioButtonGroup" Type="RadioButtonGroup"
X="30" Y="94" Width="305" Height="100" Property="CONFIGURE_IIS_YES_NO"
Text="?">
          <RadioButtonGroup Property="CONFIGURE_IIS_YES_NO">
            <RadioButton Value="1" X="0" Y="0" Width="200" Height="10"
Text="Yes, please create the default IIS configuration." />
            <RadioButton Value="0" X="0" Y="20" Width="200" Height="10"
Text="No thanks, I will configure IIS myself later." />
          </RadioButtonGroup>
        </Control>
      </Dialog>
    </UI>
  </Fragment>


Brian

If you can't explain it simply, you don't understand it well enough.  -
Albert Einstein


On Thu, Jan 9, 2014 at 7:33 AM, Brian Enderle <bria...@gmail.com> wrote:

> I have the following components that get installed:
>
>     <!-- Identify ComponentGroups to be installed -->
>     <Feature Id="ProductFeature" Title="HRActions Setup" Level="1"
> ConfigurableDirectory="INSTALL_FOLDER">
>
>       <ComponentGroupRef Id="BinComponents" />
>       <ComponentGroupRef Id="ConfigComponents" />
>       <ComponentGroupRef Id="ScriptComponents" />
>       <ComponentRef Id="HRActionsFolderPermssions" />
>       <ComponentRef Id="ProgramMenuDir" />
>
>       <!-- The /web components are generated automatically using pre-build
> event  -->
>       <ComponentGroupRef Id="WebsiteComponents" />
>        <ComponentGroupRef Id="WebsiteIISConfiguration" />
>
>     </Feature>
>
>
> I have implemented a UI screen that implements two radio buttons that ask
> the user if they want the IIS configuration setup for them as follows:
>
>     <Property Id="CONFIGURE_IIS_YES_NO" Secure="yes" Value="0" />
>
> ...
>
>         <Control Id="ConfigureIISRadioButtonGroup" Type="RadioButtonGroup"
> X="30" Y="94" Width="305" Height="100" Property="CONFIGURE_IIS_YES_NO"
> Text="?">
>           <RadioButtonGroup Property="CONFIGURE_IIS_YES_NO">
>             <RadioButton Value="1" X="0" Y="0" Width="200" Height="10"
> Text="Yes, please create the defualt IIS configuration." />
>             <RadioButton Value="0" X="0" Y="20" Width="200" Height="10"
> Text="No thanks, I will configure IIS myself later." />
>           </RadioButtonGroup>
>         </Control>
>
>
> Can I set something on <ComponentGroupRef Id="WebsiteIISConfiguration" />
> or <ComponentGroup Id="WebsiteIISConfiguration"> that would read
> CONFIGURE_IIS_YES_NO and only perform the setup within <ComponentGroup
> Id="HRActionsWebsiteIISConfiguration"> if CONFIGURE_IIS_YES_NO is YES?
>
>
> Brian
>
> If you can't explain it simply, you don't understand it well enough.  -
> Albert Einstein
>
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&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