我希望有两个基于 VersionMsi 属性版本的不同退出对话框,以便将超链接控件用于退出对话框。更多信息在这里。
我正在为我的安装过程使用 WIX 的 InstallDir_UI 扩展的定制版本。由于我希望有选择地支持超链接控件(如果可用),因此我创建了两个不同的对话框:
<Dialog Id="NonHyperlinkExit" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">
<Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
...
<Control Id="HowToLink" Type="Text" X="135" Y="175" Width="220" Height="10" Transparent="yes" NoPrefix="yes" Text="!(loc.InfoUrl)" />
...
</Dialog>
<Dialog Id="HyperlinkExit" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">
<Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
...
<Control Id="HowToHyperLink" Type="Hyperlink" X="135" Y="175" Width="220" Height="10" Text="!(loc.InfoLink)" />
...
</Dialog>
然后,我修改了 UI 发布语句以支持这些对话框,如下所示:
<Publish Dialog="NonHyperlinkExit" Control="Finish" Event="EndDialog" Value="Return" Order="998"><![CDATA[VersionMsi < "5.0"]]></Publish>
<Publish Dialog="HyperlinkExit" Control="Finish" Event="EndDialog" Value="Return" Order="999"><![CDATA[VersionMsi >= "5.0"]]></Publish>
运行此程序时,我收到以下错误:
error LGHT0204: ICE20: Exit dialog/action not found in 'AdminUISequence' Sequence Table.
error LGHT0204: ICE82: This action HyperlinkExit has duplicate sequence number -1 in the table InstallUISequence
因此,我尝试修改 InstallUISequence,但几乎没有帮助。试过这个:
<InstallUISequence>
...
<Show Dialog="NonHyperlinkExit" Before="HyperlinkExit"><![CDATA[VersionMsi < "5.0"]]></Show>
<Show Dialog="HyperlinkExit" OnExit="success"><![CDATA[VersionMsi >= "5.0"]]></Show>
</InstallUISequence>
但这只会给我以下错误:
error LGHT0177: The InstallUISequence table contains an action 'NonHyperlinkExit' that is scheduled to come before or after action 'HyperlinkExit',
which is a special action which only occurs when the installer terminates.
These special actions can be identified by their negative sequence numbers.
Please schedule the action 'NonHyperlinkExit' to come before or after a different action.
任何有关如何创建条件退出对话框的想法都将不胜感激。