如何在任何UI发生之前启动Wix Custom操作(来自C#.NET CA Lib)?
答案 0 :(得分:2)
我认为最好使用Custom元素的'Sequence'属性来控制它。
如果您使用Orca打开输出MSI,请切换到InstallUISequence或InstallExecuteSequence表并按“序列”列对记录进行排序,您将看到所执行操作的顺序执行。因此,在安排自定义操作时,您可以明确地放置序列:
<Custom Action="YourAction" ... Sequence="49" />
更方便的方法是使用与Sequence互斥的Before / After属性。只需找出您希望自定义操作在之前或之后执行的操作,并进行适当的安排:
<Custom Action="YourAction" ... Before="AnotherAction" />
您应该考虑InstallUISequence可能无法运行的事实(基本用户界面),因此如果您希望您的操作在任何情况下运行且只运行一次,请将属性Execute='firstSequence'
放入自定义操作定义:
<CustomAction Id="YourAction" ... Execute="firstSequence" />
有关自定义操作的详细信息,请务必浏览wix.chm和MSDN。 希望这会有所帮助。
答案 1 :(得分:0)
我找到了解决方案。您可以将该代码添加到UI.wxs
<Publish Dialog="YOUR_DIALOG" Control="SOME_TEXT" Event="DoAction" Value="CA_NAME" Order="you_order">CONDITION</Publish>
答案 2 :(得分:0)
您可以使用InstallExecuteSequence
来代替InstallUISequence
:
<InstallUISequence>
<Custom Action="MyCustomAction" Before="LaunchConditions">NOT Installed</Custom>
</InstallUISequence>