首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wix3:忽略<Show>元素的Overridable属性?

Wix3:忽略<Show>元素的Overridable属性?
EN

Stack Overflow用户
提问于 2017-09-22 19:25:40
回答 1查看 96关注 0票数 0

我正在使用Wix3.11并试图自定义ExitDialog。对话框的源代码(wix3-wix31rtm.zip中的ExitDialog.wxs)用以下语句调度这个对话框:

代码语言:javascript
复制
<Show Dialog="ExitDialog" OnExit="success" Overridable="yes" />

因此,我将该文件复制到本地目录为MyExitDialog.wxs,将对话框Id从ExitDialog重命名为MyExitDialog,并将此对话框调度为:

代码语言:javascript
复制
<Show Dialog="MyExitDialog" OnExit="success" />

但是,当我运行灯时,我得到了以下错误:

代码语言:javascript
复制
MyExitDialog.wxs(37): error LGHT1050: The AdminUISequence table contains actions 'MyExitDialog' and 'ExitDialog' which both have the same sequence number -1.  Please change the sequence number for one of these actions to avoid an ICE warning.
C:\build\work\eca3d12b\wix3\src\ext\UIExtension\wixlib\ExitDialog.wxs(29): error LGHT1051: The location of the action related to previous warning.

我原以为MyExitDialog的show元素会覆盖原来的ExitDialog的show元素,但它不是那样工作的。

我是否误解了Overridable属性是如何工作的?还是,我看错了ExitDialog.wxs文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-22 20:35:43

你包括了一些东西

代码语言:javascript
复制
<UIRef Id="WixUI_Minimal"/>

在你的安装中。您需要找到相关的UI文件(这里),并将该文件的内容复制到wix项目中的新wxs中。您可以将这个名称命名为"MyUI“或其他东西,还可以将<UI Id="...">标记中的Id从"WixUI_Minimal”更新到其他东西(例如)。

在您刚刚创建的新文件中,更新这一行

代码语言:javascript
复制
<Show Dialog="ExitDialog" OnExit="success" Overridable="yes" />

代码语言:javascript
复制
<Show Dialog="MyExitDialog" OnExit="success" />

现在,在您的<Product>更新中,该<UIRef>引用您的新UI。

WixUIExtension包含一个wixlib,包含UI和对话框的所有定义。您刚刚在项目中定义了一个新的退出对话框,但旧对话框仍然存在,并在WixUIExtension dll中定义。由于您仍然在使用旧的UIRef,所以它带来了与您定义的一个对话框一起的所有内容。这导致了对序列-1动作的双重定义。

可覆盖标记具有以下文本

如果“是”,则该对话框的顺序可能会被其他位置的排序所覆盖。

这意味着您可以重新定义对话框的顺序:

代码语言:javascript
复制
<Show Dialog="ExitDialog" Sequence="55" Overridable="yes"/> 
(or Before="..." or After="..." or OnExit="...")

并且不会获得任何重定义错误,因为它被标记为可重写。

根本问题是不能同时使用两个<Show>标记和OnExit="success"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46371904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档