在WiX引导程序链之后显示并启用重新启动文本和按钮

时间:2013-12-11 10:39:20

标签: wix windows-installer bootstrapper wix3.8

基本上,我想让用户在设置链完成后轻松地重启他/她的机器。在最后一个链元素之后只使用<ExitCode ...对我来说没有选项,因为我不想强制用户重新启动而我的最后一个元素是MsiPackage,我只想给用户< strong>选项重启,非常快。

当然我可以在Msi本身中实现这个功能,但我也在bootstrapper的主题文件中找到了这个:

<Page Name="Success">
    <Text X="186"
                Y="80"
                Width="-11"
                Height="30"
                FontId="2"
                DisablePrefix="yes">#(loc.SuccessHeader)</Text>
    <Button Name="LaunchButton"
                    X="-91"
                    Y="-11"
                    Width="75"
                    Height="23"
                    TabStop="yes"
                    FontId="0"
                    HideWhenDisabled="yes">#(loc.SuccessLaunchButton)</Button>
    <Text Name="SuccessRestartText"
                X="186"
                Y="-51"
                Width="-11"
                Height="32"
                FontId="3"
                DisablePrefix="yes"
                HideWhenDisabled="yes">#(loc.SuccessRestartText)</Text>
    <Button Name="SuccessRestartButton"
                    X="-116"
                    Y="-11"
                    Width="100"
                    Height="23"
                    TabStop="yes"
                    FontId="0"
                    HideWhenDisabled="yes">#(loc.SuccessRestartButton)</Button>
    <Button Name="SuccessCancelButton"
                    X="-11"
                    Y="-11"
                    Width="100"
                    Height="23"
                    TabStop="yes"
                    FontId="0">#(loc.SuccessCloseButton)</Button>
</Page>

你看,有一个RestartText和RestartButton。删除HideWhenDisabled时,我可以在设置后看到元素,但它们仍然显然已禁用。

虽然在wxs文件中SupressRepair节点中的bal:WixStandardBootstrapperApplication标签用于禁用和隐藏修复按钮和功能,但是甚至必须有任何选项来启用重启文本,按钮和功能。

我无法确定将其设置在何处。那么,如何在bootstrapp应用程序中进行设置后启用重启文本和按钮。

谢谢你的建议。

1 个答案:

答案 0 :(得分:1)

显然,我的解决方案非常简单,在MSI安装后尝试重启时可以自己检测到:

通过应用

告诉MSI程序包在成功安装后重新启动
<InstallExecuteSequence>
    <ScheduleReboot After="InstallFinalize"/>
</InstallExecuteSequence>

到我的MSI项目的wxs文件中,它不会导致MSI在安装链中进行设置后重新启动。而不是它将为引导程序提供任何返回代码,以便它在整个设置链的末尾启用我的重启文本和按钮。

我没想到引导程序如此聪明。尼斯!