我有以下CustomAction:

<CustomAction Id="ActionName"
              After="InstallFinalize">
  <![CDATA[NOT Installed AND (VSTORUNTIME4="#1")]]>
</CustomAction>

问题是当我返回ActionResult.Failure时,CustomAction中有一种情况。在这种情况下,安装程序将显示错误消息并说安装失败,但仍部分安装了应用程序(程序文件中已存在文件,而卸载程序中显示了应用程序)。

我希望如果我返回ActionResult.Failure,那么安装将被中止并卸载。如果自定义操作在默认的Visual Studio安装程序中失败,则会发生这种情况,我认为这更有意义。

如果“自定义操作”失败,有人知道如何触发卸载吗?我是否需要向WiX XML添加其他内容?

最佳答案

当前,您的自定义操作是在安装事务完成之后安排的(After =“InstallFinalize”)。可以回滚的唯一定制操作是在“InstallInitialize”和“InstallFinalize”之间计划的“延迟”定制操作。对于延迟的自定义操作,您还应该在其之前安排回滚自定义操作。

关于wix - 如果CustomAction中出现错误,如何强制WiX卸载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4974819/

10-14 16:35