Hi All,
 
Please help with the WiX problem described below.   
 
Using VS2010 ultimate, I made an installer with four features based on the WiX 
Mondo UI .  On installation or removal, a dialog should appear to reguest 
additional information if the user selects one or both of two particular 
features.  So far this works correctly if the user selects a full install or 
complete removal.  However, if the feature is being installed or removed 
(Changed) after an initial install, the dialog does not appear.
 
I have copied and modified the VerifyReadyDlg to spawn my own dialog when 
certain conditions are met.  As mentioned before, the action works as expected 
for the "Complete" and "Remove" controls.  However, nothing happens for the 
"Change" control.  I have even removed the conditions for my dialog appearing 
inside the "Change" control and still the dialog does not appear.  It seems as 
if the installer NEVER executes this portion of code.
 
I need help to figure out if a specific feature is being "Changed" during a 
custom install.  So far I have made use of the !SelectedFeature and  
&SelectedFeature to determine the installed state and action state of the 
SelectedFeature.  I'm not sure this is the problem since it appears that the 
"Change" portion of the code is not being executed.  Is there a more practical 
way to solve my problem?  Thanks for any assistance you can give.
 
 
Regards,
Chris (WiX newbie). PS. I haveincluded a portion of the modified WiX dialog
            <xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    The use and distribution terms for this software are covered by the
    Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
    which can be found in the file CPL.TXT at the root of this distribution.
    By using this software in any fashion, you are agreeing to be bound by
    the terms of this license.
    
    You must not remove this notice, or any other, from this software.
-->
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
    <Fragment>
        <UI>
            <Dialog Id="VerifyReadyDlg" Width="370" Height="270" 
Title="!(loc.VerifyReadyDlg_Title)" TrackDiskSpace="yes">
                <Control Id="Install" Type="PushButton" ElevationShield="yes" 
X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" 
Disabled="yes" Text="!(loc.VerifyReadyDlgInstall)">
                    <Condition Action="show">NOT Installed AND 
ALLUSERS</Condition>
                    <Condition Action="enable">NOT Installed</Condition>
                    <Condition Action="default">NOT Installed</Condition>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                    <Publish Event="NewDialog" Value="DBCredentialsDlg">NOT 
Installed AND ((&amp;InstallDatabase = 3) OR (&amp;InstallArchiveDatabase = 
3))</Publish>
                </Control>
                <Control Id="InstallNoShield" Type="PushButton" 
ElevationShield="no" X="212" Y="243" Width="80" Height="17" Default="yes" 
Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgInstall)">
                    <Condition Action="show">NOT Installed AND NOT 
ALLUSERS</Condition>
                    <Condition Action="enable">NOT Installed</Condition>
                    <Condition Action="default">NOT Installed</Condition>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                </Control>
                <Control Id="Change" Type="PushButton" ElevationShield="yes" 
X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" 
Disabled="yes" Text="!(loc.VerifyReadyDlgChange)">
                    <Condition Action="show">WixUI_InstallMode = "Change" AND 
ALLUSERS AND (ADDLOCAL OR REMOVE)</Condition>
                    <Condition Action="enable">WixUI_InstallMode = 
"Change"</Condition>
                    <Condition Action="default">WixUI_InstallMode = 
"Change"</Condition>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                    <Publish Event="NewDialog" 
Value="DBCredentialsDlg">Installed AND ((&amp;InstallDatabase = 3) OR 
(&amp;InstallArchiveDatabase = 3))</Publish>
                </Control>
                <Control Id="ChangeNoShield" Type="PushButton" 
ElevationShield="no" X="212" Y="243" Width="80" Height="17" Default="yes" 
Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgChange)">
                    <Condition Action="show">WixUI_InstallMode = "Change" AND 
(NOT ALLUSERS OR (NOT ADDLOCAL AND NOT REMOVE))</Condition>
                    <Condition Action="enable">WixUI_InstallMode = 
"Change"</Condition>
                    <Condition Action="default">WixUI_InstallMode = 
"Change"</Condition>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                </Control>
                <Control Id="Repair" Type="PushButton" X="212" Y="243" 
Width="80" Height="17" Default="yes" Hidden="yes" Disabled="yes" 
Text="!(loc.VerifyReadyDlgRepair)">
                    <Condition Action="show">WixUI_InstallMode = 
"Repair"</Condition>
                    <Condition Action="enable">WixUI_InstallMode = 
"Repair"</Condition>
                    <Condition Action="default">WixUI_InstallMode = 
"Repair"</Condition>
                    <Publish Event="ReinstallMode" 
Value="ecmus"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="Reinstall" 
Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                    <Publish Event="NewDialog" 
Value="DBCredentialsDlg">Installed AND ((!InstallDatabase = 3) OR 
(!InstallArchiveDatabase = 3))</Publish>
                </Control>
                <Control Id="Remove" Type="PushButton" ElevationShield="yes" 
X="212" Y="243" Width="80" Height="17" Hidden="yes" Disabled="yes" 
Text="!(loc.VerifyReadyDlgRemove)">
                    <Condition Action="show">WixUI_InstallMode = "Remove" AND 
ALLUSERS</Condition>
                    <Condition Action="enable">WixUI_InstallMode = 
"Remove"</Condition>
                    <Publish Event="Remove" Value="All"><![CDATA[OutOfDiskSpace 
<> 1]]></Publish>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                    <Publish Event="NewDialog" 
Value="DBCredentialsDlg">Installed AND ((!InstallDatabase = 3) OR 
(!InstallArchiveDatabase = 3))</Publish>
                </Control>
                <Control Id="RemoveNoShield" Type="PushButton" 
ElevationShield="no" X="212" Y="243" Width="80" Height="17" Hidden="yes" 
Disabled="yes" Text="!(loc.VerifyReadyDlgRemove)">
                    <Condition Action="show">WixUI_InstallMode = "Remove" AND 
NOT ALLUSERS</Condition>
                    <Condition Action="enable">WixUI_InstallMode = 
"Remove"</Condition>
                    <Publish Event="Remove" Value="All"><![CDATA[OutOfDiskSpace 
<> 1]]></Publish>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                </Control>
                <Control Id="Update" Type="PushButton" ElevationShield="yes" 
X="212" Y="243" Width="80" Height="17" Hidden="yes" Disabled="yes" 
Text="!(loc.VerifyReadyDlgUpdate)">
                    <Condition Action="show">WixUI_InstallMode = "Update" AND 
ALLUSERS</Condition>
                    <Condition Action="enable">WixUI_InstallMode = 
"Update"</Condition>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                </Control>
                <Control Id="UpdateNoShield" Type="PushButton" 
ElevationShield="no" X="212" Y="243" Width="80" Height="17" Hidden="yes" 
Disabled="yes" Text="!(loc.VerifyReadyDlgUpdate)">
                    <Condition Action="show">WixUI_InstallMode = "Update" AND 
NOT ALLUSERS</Condition>
                    <Condition Action="enable">WixUI_InstallMode = 
"Update"</Condition>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                </Control>

                <Control Id="InstallTitle" Type="Text" X="15" Y="15" 
Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" 
Text="!(loc.VerifyReadyDlgInstallTitle)">
                    <Condition Action="show">NOT Installed</Condition>
                </Control>
                <Control Id="InstallText" Type="Text" X="25" Y="70" Width="320" 
Height="80" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallText)">
                    <Condition Action="show">NOT Installed</Condition>
                </Control>
                <Control Id="ChangeTitle" Type="Text" X="15" Y="15" Width="300" 
Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" 
Text="!(loc.VerifyReadyDlgChangeTitle)">
                    <Condition Action="show">WixUI_InstallMode = 
"Change"</Condition>
                </Control>
                <Control Id="ChangeText" Type="Text" X="25" Y="70" Width="320" 
Height="80" Hidden="yes" Text="!(loc.VerifyReadyDlgChangeText)">
                    <Condition Action="show">WixUI_InstallMode = 
"Change"</Condition>
                </Control>
                <Control Id="RepairTitle" Type="Text" X="15" Y="15" Width="300" 
Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" 
Text="!(loc.VerifyReadyDlgRepairTitle)">
                    <Condition Action="show">WixUI_InstallMode = 
"Repair"</Condition>
                </Control>
                <Control Id="RepairText" Type="Text" X="25" Y="70" Width="320" 
Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgRepairText)">
                    <Condition Action="show">WixUI_InstallMode = 
"Repair"</Condition>
                </Control>
                <Control Id="RemoveTitle" Type="Text" X="15" Y="15" Width="300" 
Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" 
Text="!(loc.VerifyReadyDlgRemoveTitle)">
                    <Condition Action="show">WixUI_InstallMode = 
"Remove"</Condition>
                </Control>
                <Control Id="RemoveText" Type="Text" X="25" Y="70" Width="320" 
Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgRemoveText)">
                    <Condition Action="show">WixUI_InstallMode = 
"Remove"</Condition>
                </Control>
                <Control Id="UpdateTitle" Type="Text" X="15" Y="15" Width="300" 
Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" 
Text="!(loc.VerifyReadyDlgUpdateTitle)">
                    <Condition Action="show">WixUI_InstallMode = 
"Update"</Condition>
                </Control>
                <Control Id="UpdateText" Type="Text" X="25" Y="70" Width="320" 
Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgUpdateText)">
                    <Condition Action="show">WixUI_InstallMode = 
"Update"</Condition>
                </Control>

                <Control Id="Cancel" Type="PushButton" X="304" Y="243" 
Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
                    <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
                </Control>
                <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" 
Height="17" Text="!(loc.WixUIBack)">
                    <Condition Action="default">WixUI_InstallMode = 
"Remove"</Condition>
                </Control>
                <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" 
Width="370" Height="44" TabSkip="no" Text="!(loc.VerifyReadyDlgBannerBitmap)" />
                <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" />
            </Dialog>
        </UI>
    </Fragment>
</Wix>                                    
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to