我创建了一个通过UI触发的自定义操作。它适用于新安装但在升级期间失败。但是,如果我从控制面板运行修复,它运行正常。我尝试捕获msi日志,但它没有提供任何线索。这是片段......
UI:
<Control Id="CloseButton" Type="PushButton" X="230" Y="243" Width="66" Height="17" Default="yes" Cancel="yes" Text="&Continue">
<Publish Event="DoAction" Value="ConfigureServer1">1</Publish>
<Publish Event="EndDialog" Value="Return">1</Publish>
</Control>
自定义操作:
<CustomAction Id="ConfigureServer1" Impersonate="no" Directory="TARGETDIR" Return="asyncNoWait" ExeCommand="[#fileSetupDb] "[ProductVersion]" "[OCISUPGRADE]""></CustomAction>
UI文件的序列:
<InstallUISequence>
......
<Show Dialog="FinishedForm" OnExit="success" />
......
</InstallUISequence>
任何线索....或任何我可以尝试调试等?我尝试了几天没有结果。我不是msi或wix的新手,也不是专家。
答案 0 :(得分:0)
我没有完全按照这个问题,但我会猜测。升级“产品的早期版本”(正在删除的MSI)时,只运行其InstallExecuteSequence。因此,InstallUISequence中旧版本产品中的自定义操作将不会运行。
如果问题是为什么自定义操作不会在新版本的产品中运行,那么这里没有足够的信息。您可以查看详细日志文件,以查看具有匹配Id的自定义操作的结果。