【发布时间】:2018-03-04 02:00:19
【问题描述】:
我的 Product.wxs 中有一些功能(Complete,它有 2 个子功能,即 AppFeature 和 DBFeature),如下所示。
<Feature InstallDefault="local" Description="!(loc.FullFeatureDesc)" Title="!(loc.FullFeatureTitle)" Level="1" Id="Complete" Absent="allow" AllowAdvertise="no" Display="expand">
<Feature InstallDefault="local" Description="!(loc.AppFeatureDesc)" Title="!(loc.AppFeatureTitle)" Level="1" Id="AppFeature" Absent="allow" AllowAdvertise="no" Display="expand">
<ComponentGroupRef Id="AppCG"/>
</Feature>
<Feature InstallDefault="local" Description="!(loc.DBFeatureDesc)" Title="!(loc.DBFeatureTitle)" Level="1" Id="DBFeature" Absent="allow" AllowAdvertise="no" Display="expand">
<ComponentGroupRef Id="DbCG"/>
</Feature>
</Feature>
在另一个对话框中,我有几个用于 All、App 和 DB 选项的复选框,每个选项都表示一个功能(All 表示 App 和 DB)。我想将 App 复选框关联到 App 功能和数据库复选框到数据库功能。我使用 Event="AddLocal" 和 Value="AppFeature" 和一个用于 DBFeature 的对话框中的 Next 按钮中的 Publish 元素进行了尝试,并适当地选中了复选框值。但是在单击下一步按钮时,什么也没有发生。谁能帮帮我吗?我还提供了对话框中的元素以供参考。
<Control Id="ControlAllFeature" Type="CheckBox" X="180" Y="33" Width="140" Height="17"
Property="ALLFEATURES_CHECKED" CheckBoxValue="AllFeatureValue" Text="Install Everything">
<Publish Property="APPFEATURE_CHECKED" Value="AppFeatureValue" Order="1">ALLFEATURES_CHECKED</Publish>
<Publish Property="APPFEATURE_CHECKED" Value="{}" Order="2">NOT ALLFEATURES_CHECKED</Publish>
<Publish Property="DBFEATURE_CHECKED" Value="DBFeatureValue" Order="3">ALLFEATURES_CHECKED</Publish>
<Publish Property="DBFEATURE_CHECKED" Value="{}" Order="4">NOT ALLFEATURES_CHECKED</Publish>
</Control>
<Control Id="ControlAppFeature" Type="CheckBox" X="191" Y="50" Width="140" Height="17"
Property="APPFEATURE_CHECKED" CheckBoxValue="AppFeatureValue" Text="Install Application">
<Publish Property="ALLFEATURES_CHECKED" Value="{}" Order="1">NOT APPFEATURE_CHECKED</Publish>
<Publish Property="ALLFEATURES_CHECKED" Value="AllFeatureValue" Order="2">APPFEATURE_CHECKED AND DBFEATURE_CHECKED</Publish>
</Control>
<Control Id="ControlDBFeature" Type="CheckBox" X="191" Y="67" Width="140" Height="17"
Property="DBFEATURE_CHECKED" CheckBoxValue="DBFeatureValue" Text="Install DB">
<Publish Property="ALLFEATURES_CHECKED" Value="{}" Order="1">NOT DBFEATURE_CHECKED</Publish>
<Publish Property="ALLFEATURES_CHECKED" Value="AllFeatureValue" Order="2">APPFEATURE_CHECKED AND DBFEATURE_CHECKED</Publish>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
<Publish Event="NewDialog" Value="CustLicenseAgmtDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&Next">
<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">CostingComplete = 1</Publish>
<Publish Event="NewDialog" Value="BrowsePathDlg"></Publish>
<Condition Action="disable">NOT APPFEATURE_CHECKED OR NOT DBFEATURE_CHECKED</Condition>
<Condition Action="enable">APPFEATURE_CHECKED OR DBFEATURE_CHECKED</Condition>
<Publish Event="Remove" Value="ALL" Order="1">1</Publish>
<Publish Event="AddLocal" Value="AppFeature" Order="2">APPFEATURE_CHECKED</Publish>
<Publish Event="AddLocal" Value="DBFeature" Order="3">DBFEATURE_CHECKED</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>
我为此参考了下面的链接,但无法使其正常工作。任何帮助将不胜感激。
【问题讨论】: