Scenario:
1. I have several (let's say 4) custom dialogs. The first dialog conatins a
list control so the installer can select the 'environment' (i.e., production,
test, qa, dev, etc.0. this list is populated dynamically by a custom action.
The custom action allows the developer (person building the wix files) to
specify (via properties) the different types of environments. This works great.
2. Custom dialogs 2-4 display different values in control fields, based upon
the environment selected in the first dialog.
Current Approach:
The developer must create a property for each combination of environment and
value (for dialogs 2-4). Then the developer must a length list of conditional
publish statements for the list control in dialog , to set the value of the
dialog 2-4 fields property.
Advantage: it works
Disadvantage: difficult to maintain, increases opportunity for developer error
The Problem:
I would like to create a custom action, or equivalent functionality that will
run after dialog 1, but before dialog 2-4. This custom action function would
inspect the property for the environment (set in dialog 1), and then set the
specified property to another property based upon the environment.
I have a custom action where I build the correct environment sensitive values.
I can get custom actions to run before dialog 1 (which doesn't help) or after
all dialogs (which is too late). How can I insert conditional functionality
that is dynamic in nature (remember the developer controls the values of items
in the environment list control, which will correspond with the number of
potential default values specified)?
Ideally (in a perfect world) I could insert a function/custom action after
Dialog 1. If I try to use the "Publish Event="DoAction" to call a custom
action, the CA must be deferred and does not happen when I need it to, between
dialogs 1 and 2.
Any help, suggestions, or ideas will be appreciated.
Thanks,
Bob
SNIPPETS:
Dialog 1 List Box Control:
<Control Id="EnvironmentList" Type="ListBox" X="45" Y="73"
Width="100" Height="60" TabSkip="no"
Property="propInstallEnvironment" Sorted ="no">
<ListBox Property="propInstallEnvironment" >
<!-- List items added by Custom Action "PopulateEnvironmentList" -->
</ListBox>
<!-- Set Appropriate Default Values for WebSite DIALOG -->
<Publish Property ="WEB_ADDRESS" Value ="[Development.WEB_ADDRESS]">
<![CDATA[propInstallEnvironment = "Development" AND Development.WEB_ADDRESS <>
""]]>
</Publish>
<Publish Property ="WEB_ADDRESS" Value ="[QA.WEB_ADDRESS]">
<![CDATA[propInstallEnvironment = "QA" AND QA.WEB_ADDRESS <> ""]]>
</Publish>
<Publish Property ="WEB_ADDRESS" Value ="[Test.WEB_ADDRESS]">
<![CDATA[propInstallEnvironment = "Test" AND Test.WEB_ADDRESS <> ""]]>
</Publish>
<Publish Property ="WEB_ADDRESS" Value ="[Production.WEB_ADDRESS]">
<![CDATA[propInstallEnvironment = "Production" AND Production.WEB_ADDRESS <>
""]]>
</Publish>
Sample Dialog 2-n List Box Control:
<Control Id="WebSiteAddressEdit" Type="Edit" X="45" Y="85" Width="220"
Height="18" Property="WEB_ADDRESS" Text="{32}" />
Sample of how developer is current setting default values (in main wxs file):
<!-- WEB SITE DEFAULTS-->
<Property Id ="Development.WEB_ADDRESS" Value="1.2.3.4" />
<Property Id ="Test.WEB_ADDRESS" Value="2.2.3.4" />
<Property Id ="QA.WEB_ADDRESS" Value="3.2.3.4" />
<Property Id ="Production.WEB_ADDRESS" Value="4.2.3.4" />
------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users