【发布时间】:2010-08-13 20:12:00
【问题描述】:
大家好。
我的问题是双重的。我有一个我一直在处理的 WiX 项目,并且我的任务是让它执行程序执行,无论用户是否按下取消、安装被中止(通过现有版本)或用户成功完成安装。
我目前使用的是内置的diaglog系统:
<UIRef Id="WixUI_InstallDir" />
我目前在安装完成后执行应用程序非常成功。困难在于应用程序位于安装程序的同一位置,我不能保证会在哪里。所以我在安装成功后使用以下方法执行程序:
<InstallExecuteSequence>
<Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
<RemoveExistingProducts After="InstallInitialize" />
<Custom Action="PropertyAssign" Before="InstallFinalize">NOT Installed</Custom>
<Custom Action="LaunchFile" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
<CustomAction Id='PropertyAssign' Property='PathProperty' Value='[SourceDir][DRIVEREXEC]' />
<CustomAction Id="LaunchFile" Property="PathProperty" ExeCommand='/S' Return="asyncNoWait" />
这两个自定义操作用于在安装完成后执行应用程序。因此,当程序存在时,我无法分配两个自定义操作。当两个自定义操作具有相同的设置时,OnExit="error" 会引发异常。
如何无条件地执行一个应用程序,位置未知——但假定在安装程序的同一目录中?
感谢大家的宝贵时间和热情的回复
【问题讨论】:
标签: windows installation wix custom-action