Wix在首次安装后启动已安装的软件,而不是在升级后

时间:2017-01-10 16:15:13

标签: wix windows-installer installer upgrade

我正在尝试在安装后使用某个参数启动我正在安装的软件以执行初始化任务。我想在第一次安装后启动自定义操作,而不是在升级后启动。

以下代码在首次安装和升级后启动custum操作。

<CustomAction Id="MyAction"
    Directory="TARGETDIR"
    ExeCommand="[INSTALL_ROOT]MySoft.exe myarg"
    Execute="immediate"
    Return="ignore"
    Impersonate="yes" />
<InstallExecuteSequence>
    <Custom Action="MyAction" After='InstallFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom>
</InstallExecuteSequence>

问题是什么?

1 个答案:

答案 0 :(得分:2)

运行MSI并使用msiexec / I [msi的路径] / l * vx [日志文件的路径]创建日志,并查看调用自定义操作的时间以及日志的相关内容。

您是否知道程序是否已启动并崩溃,因为(例如)它需要提升权限?你假设安装有问题,因为你可能没有看到你的程序运行的结果,但如果它崩溃你怎么知道?日志会告诉你它是否试图运行它,并注意说return = ignore意味着即使失败也会继续安装。

如果“升级后”意味着这是升级MSI,那么您的条件是错误的,因为在升级时设置了UPGRADINGPRODUCTCODE,而不是在您的产品升级时。如果这是升级设置,则需要WIX_UPGRADE_DETECTED作为条件。