As promised, here was the solution to the problem. I am attaching my new dialog (EnvironmentDlg.wxs) to the email and will reference a subsection of it to explain what I did.

Background: I wanted to create an installer that would install the same application across our staged environments (Dev, Test, Qa, & Prod) without changing the install package. My installer includes a new dialog (EnvironmentDlg) that allows the installer to pick their environment as a checkbox. Depending upon their selection, I wanted the feature tree in CustomizeDlg to be updated based upon the installer's selection.

From New Dialog (EnvironmentDlg):
<Control Id="DevEnvironmentCheckbox" Type="CheckBox" X="18" Y="78" Width="330" Height="18" CheckBoxValue="1" Property="DEV_ENVIRONMENT" Text="Development"> <Condition Action="disable">TEST_ENVIRONMENT = "1" OR QA_ENVIRONMENT = "1" OR PROD_ENVIRONMENT = "1"</Condition>
 <Condition Action="enable"><![CDATA[TEST_ENVIRONMENT <> "1"]]> AND
<![CDATA[QA_ENVIRONMENT <> "1"]]> AND <![CDATA[PROD_ENVIRONMENT <> "1"]]></Condition>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17"
            Text="&amp;Next">
...
 <Publish Event="AddLocal" Value="ConfigDev">DEV_ENVIRONMENT</Publish>
 <Publish Event="Remove" Value="ConfigDev">NOT DEV_ENVIRONMENT</Publish>
...
</Control>

From my main wxs file:
<Feature Id="Configuration" Level="1" Title="Web Application Configuration"
Description="Handles configuration for selected installation environment" AllowAdvertise="yes" Display="expand" TypicalDefault="install"> <Feature Id="ConfigDev" Level="1" Title="Development" AllowAdvertise="no" Display="expand" Description="Configuration (Development)" TypicalDefault="install">
   <ComponentRef Id="InstallInstDevCfg" />
   <ComponentRef Id="CreateTemplateWebSiteDev" />
   <ComponentRef Id="CreateWebSiteDevKey" />
 </Feature>
  ...
</Feature>

Depending upon the checkbox selected (Dev, Test, Qa, or Production [they are mutually-exclusive in my implementation]), the [Next] button fires a <Publish> event to either keep remove the four possible features.

Thanks to all for the help in finding the solution!

David Adams
MSN MessengerID: [EMAIL PROTECTED]

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi";>
	<Fragment>
    <UI>
			<Dialog Id="EnvironmentDlg" Width="370" Height="270" Title="[ProductName]">
				<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next"> 
					<Publish Event="SpawnDialog" Value="WaitForCostingDlg">CostComplete = 1</Publish>
					<Publish Event="NewDialog" Value="[WixUI_EnvironmentDlg_Next]">1</Publish>
          <Publish Event="AddLocal" Value="ConfigDev">DEV_ENVIRONMENT</Publish>
          <Publish Event="Remove" Value="ConfigDev">NOT DEV_ENVIRONMENT</Publish>
          <Publish Event="AddLocal" Value="ConfigTest">TEST_ENVIRONMENT</Publish>
          <Publish Event="Remove" Value="ConfigTest">NOT TEST_ENVIRONMENT</Publish>
          <Publish Event="AddLocal" Value="ConfigQa">QA_ENVIRONMENT</Publish>
          <Publish Event="Remove" Value="ConfigQa">NOT QA_ENVIRONMENT</Publish>
          <Publish Event="AddLocal" Value="ConfigProd">PROD_ENVIRONMENT</Publish>
          <Publish Event="Remove" Value="ConfigProd">NOT PROD_ENVIRONMENT</Publish>
          <Condition Action="disable"><![CDATA[DEV_ENVIRONMENT <> "1"]]> AND <![CDATA[TEST_ENVIRONMENT <> "1"]]> AND <![CDATA[QA_ENVIRONMENT <> "1"]]> AND <![CDATA[PROD_ENVIRONMENT <> "1"]]></Condition>
          <Condition Action="enable">DEV_ENVIRONMENT = "1" OR TEST_ENVIRONMENT = "1" OR QA_ENVIRONMENT  = "1" OR PROD_ENVIRONMENT = "1"</Condition>
        </Control>
        <Control Id="DevEnvironmentCheckbox" Type="CheckBox" X="18" Y="78" Width="330" Height="18" CheckBoxValue="1" Property="DEV_ENVIRONMENT" Text="Development">
          <Condition Action="disable">TEST_ENVIRONMENT = "1" OR QA_ENVIRONMENT  = "1" OR PROD_ENVIRONMENT = "1"</Condition>
          <Condition Action="enable"><![CDATA[TEST_ENVIRONMENT <> "1"]]> AND <![CDATA[QA_ENVIRONMENT <> "1"]]> AND <![CDATA[PROD_ENVIRONMENT <> "1"]]></Condition>
        </Control>
        <Control Id="TestEnvironmentCheckbox" Type="CheckBox" X="18" Y="98" Width="330" Height="18" CheckBoxValue="1" Property="TEST_ENVIRONMENT" Text="Test">
          <Condition Action="disable">DEV_ENVIRONMENT = "1" OR QA_ENVIRONMENT  = "1" OR PROD_ENVIRONMENT = "1"</Condition>
          <Condition Action="enable"><![CDATA[DEV_ENVIRONMENT <> "1"]]> AND <![CDATA[QA_ENVIRONMENT <> "1"]]> AND <![CDATA[PROD_ENVIRONMENT <> "1"]]></Condition>
        </Control>
        <Control Id="QaEnvironmentCheckbox" Type="CheckBox" X="18" Y="118" Width="330" Height="18" CheckBoxValue="1" Property="QA_ENVIRONMENT" Text="QA / UAT">
          <Condition Action="disable">DEV_ENVIRONMENT = "1" OR TEST_ENVIRONMENT  = "1" OR PROD_ENVIRONMENT = "1"</Condition>
          <Condition Action="enable"><![CDATA[DEV_ENVIRONMENT <> "1"]]> AND <![CDATA[TEST_ENVIRONMENT <> "1"]]> AND <![CDATA[PROD_ENVIRONMENT <> "1"]]></Condition>
        </Control>
        <Control Id="ProdEnvironmentCheckbox" Type="CheckBox" X="18" Y="138" Width="330" Height="18" CheckBoxValue="1" Property="PROD_ENVIRONMENT" Text="Production">
          <Condition Action="disable">DEV_ENVIRONMENT = "1" OR TEST_ENVIRONMENT  = "1" OR QA_ENVIRONMENT = "1"</Condition>
          <Condition Action="enable"><![CDATA[DEV_ENVIRONMENT <> "1"]]> AND <![CDATA[TEST_ENVIRONMENT <> "1"]]> AND <![CDATA[QA_ENVIRONMENT <> "1"]]></Condition>
        </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="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
					<Publish Event="NewDialog" Value="[WixUI_EnvironmentDlg_Back]">1</Publish>
				</Control>
				<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="374" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
				<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="374" Height="0" />
				<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="374" Height="0" />
				<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
					<Text>Select Application Installation Environment</Text>
				</Control>
				<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
					<Text>{\WixUI_Font_Title}Environment Selection</Text>
				</Control>
			</Dialog>
		</UI>
	</Fragment>
</Wix>

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to