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="&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="&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="&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