2008-11-19 151 views
2

所以,我想在应用程序完成安装后(尽管事实上,当辅助应用程序运行真的无所谓,因为它不会与安装的文件进行交互安装),运行与应用程序捆绑在一起的另一个程序。相关代码(与更换不同的东西“...”:Wix自定义操作与WixUI_Minimal

<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" />我不认为这是

回答

5

CostFinalize在InstallFiles延迟操作运行之前发生(实际上是放置该文件)。因此,CustomAction无法正常工作(因为文件不可用)(因为Return被忽略)

您需要您的CustomAction至少在InstallFiles之后计划并被延期,或者如果CustomAction不能延迟运行,那么它必须在InstallFinalize之后(当然,它不会在InstallFinalize之后导致回滚)。