2

我的应用程序只有一个“功能”,所以我想从 WixUI_Advanced 中省略 FeaturesDlg。我制作了一份 wixui_advanced.wxs 的副本,并对其进行了调整以使其按原样工作。

为了看看会发生什么,我注释掉了这一行:

<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="FeaturesDlg" Order="4">WIXUIDONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>

但是,正如人们所预料的那样,我的更改导致 InstallDirDlg 上的 Next 按钮变为 NOP。我猜我希望 InstallDirDlg Next 按钮“完成”一切并开始安装。我怎么做?

4

2 回答 2

2

您基本上想InstallFeaturesDlg. 这看起来像:

<Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Hidden="yes" Text="!(loc.FeaturesDlgInstall)">
    <Condition Action="show">NOT Installed AND ALLUSERS</Condition>
    <Condition Action="default">NOT Installed</Condition>
    <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">!(wix.WixUICostingPopupOptOut) OR CostingComplete = 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="InstallNoShield" Type="PushButton" ElevationShield="no" X="212" Y="243" Width="80" Height="17" Hidden="yes" Text="!(loc.FeaturesDlgInstall)">
    <Condition Action="show">NOT Installed AND NOT ALLUSERS</Condition>
    <Condition Action="default">NOT Installed</Condition>
    <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">!(wix.WixUICostingPopupOptOut) OR CostingComplete = 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>

是的,那里发生了很多事情,因为该Install按钮是完成所有磁盘空间不足检查的地方。

于 2013-04-15T04:42:43.050 回答
0

您的 Next 是 NOP,因为您还没有为该控件的事件发布任何内容。

如果您希望“下一步”按钮带您进入最终安装对话框,即安装程序在继续安装之前要求用户确认,则将值设置为“VerifyReadyDlg”而不是“FeaturesDlg”。然后,您必须为“VerfiyReadyDlg”设置后退按钮控件,以便它带您回到原来的位置。

否则,如果您不想要这个,那么只需将“安装”按钮(如 Rob 的回答)放在您认为是最终对话框的对话框上。

于 2013-04-17T09:18:23.827 回答