所以,我正在尝试,在应用程序完成安装后(虽然实际上,在运行辅助应用程序时无关紧要,因为它在安装期间不与已安装的文件交互),运行另一个与应用程序捆绑在一起的程序。相关代码(各种内容替换为<!> quot; ... <!>“;

<directory ...>
  <component ...>
  <File Id="IDINST" ... />
  </component>
</directory>
...
<CustomAction Id="IDACTION" FileKey="IDINST" ExeCommand="..." Return="ignore" />
...
<InstallExecuteSequence>
  <Custom Action="IDACTION" After="CostFinalize" />
</InstallExecuteSequence>

我检查了目录,文件是我预期的位置,但是在安装过程后没有执行。事实上,我甚至不想要安装该文件,只需运行然后删除即可。但我暂时不理睬这一点。无论如何,我已经看到了几个在对话之后触发动作的例子,但由于我现在正在使用<UIRef Id="WixUI_Minimal" />,我认为这不是理想的。

有帮助吗?

解决方案

CostFinalize在InstallFiles延迟操作运行(实际放置文件)之前很久就会发生。因此,CustomAction以静默方式失败(因为文件不可用)(因为Return是忽略的)

您需要至少在InstallFiles之后安排CustomAction,并且如果CustomAction不能延迟运行,那么它必须在InstallFinalize之后(当然,它不能在InstallFinalize之后导致回滚)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top