单击“下一步”按钮时,如何调用自定义操作dll?目前我正在做的事情如下:
<CustomAction Id="TestingAction" BinaryKey="BIN_CustomAction" DllEntry="TestValue" Execute="deferred" Return="check" />
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&Next"></Control>
<Custom Action="TestingAction" After="Next"></Custom>
当我给出After ="Next"
这是我的下一个按钮时,我在构建应用程序后遇到错误。
未解决的对符号'WixAction:InstallUISequence / Next'的引用 部分'产品:*。
如何解决问题,任何人都可以帮助我在单击“下一步按钮”后如何调用CustomAction。
答案 0 :(得分:8)
您要做的是将延迟的自定义操作安排到某个序列,并在名为Next的自定义操作之后运行它,这显然不存在。您应该采用完全不同的方式在按钮单击时调用自定义操作。
请按照以下步骤操作:
execute='immediate'
),永远不应该改变目标系统的状态Control
元素 - 您要触发事件的按钮Publish
元素作为Control
的子元素,发布DoAction
事件以下是来自WiX来源的完整示例,如何通过点击按钮打印EULA:
<Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)">
<Publish Event="DoAction" Value="WixUIPrintEula">1</Publish>
</Control>
显然,Control
元素应该是Dialog
元素的子元素。
自定义操作的定义如下:
<CustomAction Id="WixUIPrintEula" BinaryKey="WixUIWixca" DllEntry="PrintEula" Return="ignore" Execute="immediate" />
希望这有帮助。