0

我创建了一个通过 UI 触发的自定义操作。它适用于新安装,但在升级过程中失败。但是,如果我从控制面板运行修复,它就会运行良好。我尝试捕获 msi 日志,但它没有提供任何线索。以下是片段...

用户界面:

<Control Id="CloseButton" Type="PushButton" X="230" Y="243" Width="66" Height="17" Default="yes" Cancel="yes" Text="&amp;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] &quot;[ProductVersion]&quot; &quot;[OCISUPGRADE]&quot;"></CustomAction>

UI 文件的顺序:

<InstallUISequence>
......
 <Show Dialog="FinishedForm" OnExit="success" />
......
</InstallUISequence>

任何线索....或任何我可以尝试调试的东西等?我试了几天没有结果。我不是 msi 或 wix 的新手,也不是专家。

4

1 回答 1

0

我不完全遵循这个问题,但我会猜测一下。升级“产品的先前版本”(正在删除的 MSI)仅运行其 InstallExecuteSequence。所以InstallUISequence中旧版本产品中的自定义操作不会运行。

如果问题是为什么自定义操作不会在新版本的产品中运行,那么这里没有足够的信息。您可以查看详细日志文件以查看具有匹配 ID 的自定义操作的结果。

于 2011-02-10T20:59:38.290 回答