【问题标题】:Separate Publish Event from Control将发布事件与控件分开
【发布时间】:2013-03-19 22:04:21
【问题描述】:

我有几个 WiX 项目通用的 UI 对话框。

但是根据项目的不同,常见的UI之前(Back)或之后(Next)的对话框可能会有所不同。
为了避免代码重复,我希望单独使用公共对话框(没有发布事件)和每个 WiX 项目中定义的 UI 的发布事件。

是否有可能以及如何做到这一点?

【问题讨论】:

    标签: wix wix3.5


    【解决方案1】:

    Yes it is,你可以看看src\ext\uiextension\wixlib下的wix源代码。您会注意到所有对话框都在它们自己的文件中,并且 UI 集是分开的。

    例如,在 WixUI_Mondo.wxs 中,你有 DialogRef 标签来导入你的对话框和一堆 Publish 标签来重新排序序列。例如,在InstallDirDlg 中,有控件,旁边没有Publish 标记。

    您的用户界面如下所示:

    <UI Id="MyUI">
        <DialogRef="WelcomeDlg"/>
        <DialogRef="InstallDirDlg"/>
    
        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">CONDITION</Publish>
        <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
    </UI>
    

    在你的对话框文件中:

    <UI>
        <Dialog Id="WelcomeDlg" Width="370" Height="270" Title="Welcome">
            <Control ... />
        </Dialog>
    </UI>
    

    您也可以在您的项目中使用multiple InstallUISequence tags。因此,如果您的对话框将始终调用自定义操作,或者在另一个操作之前显示,您不妨将其放入该文件中。

    您可以下载源代码here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多