gpt4 book ai didi

wix - 在 WiX 中的对话框 (InstallUISequence) 之间插入自定义操作

转载 作者:行者123 更新时间:2023-12-04 10:53:12 26 4
gpt4 key购买 nike

我有两个自定义对话框(加上必需的 ExitDlgFatalErrorDlg 等),第一个使用 Edit 控件设置属性,第二个使用 Text 控件显示此属性。这是有意义的代码:

<Dialog Id="DialogA" ...>
<Control Id="ControlEdit" Type="Edit" Property="MY_PROPERTY" .../>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
</Dialog>

然后是第二个对话框:

<Dialog Id="DialogB" ...>
<Control Id="ControlText" Type="Text" Text="[MY_PROPERTY]" .../>
<Control Id="ControlBack" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
</Dialog>

以及 Action 序列:

<InstallUISequence>
<Show Dialog="DialogA" Before="MyCustomAction" />
<Custom Action="MyCustomAction" Before="DialogB" />
<Show Dialog="DialogB" Before="ExecuteAction" />
</InstallUISequence>

自定义操作更改了 MY_PROPERTY 的值.我的问题是如何在 DialogB 中制作后退按钮回到 DialogA .使用 NewDialog很简单,但是我无法在对话框之间执行自定义操作,或者我可以吗?

编辑 - 2013-05-02

在@caveman_dick 的回答之后,我尝试更改 DialogA几乎就像他说的,但不是使用 EndDialog ,我改成 Action="NewDialog" Value="DialogB" .但是现在没有调用自定义操作。如果我删除 Publish 事件以转到下一个对话框,则会调用 CA。如果我像@caveman_dick 所说的那样离开,我将无法回到 DialogA来自 DialogB .

编辑 - 2013-05-02

在 WiX 3.6: A Developer's Guide to Windows Installer XML 一书中搜索后,我发现以下内容:“如果您有多个 Publish 事件,则它们必须有条件语句作为其内部文本。否则,所有事件都不会发表。”

所以@caveman_dick 的回答是正确的,只是你需要改成如下:

<Publish ...>1</Publish>

最佳答案

而不是在 InstallUISequence 中安排自定义操作您可以通过单击按钮发布它:

<Dialog Id="DialogA" ...>
<Control Id="ControlEdit" Type="Edit" Property="MY_PROPERTY" .../>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="DoAction" Value="MyCustomAction">1</Publish>
<Publish Event="EndDialog" Value="Return">1</Publish>
</Control>
</Dialog>

编辑: Publish元素的条件需要明确评估为真才能运行,因此添加 "1"如文中 Publish元素。

关于wix - 在 WiX 中的对话框 (InstallUISequence) 之间插入自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16336684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com