高级安装程序:停止安装程序在升级时清除临时文件

时间:2014-02-24 13:04:48

标签: advanced-installer

我在完成更新工作的过程中遇到了一个问题。

使用的更新方法是卸载然后安装。

我的问题如下:

  • 我有几个依赖Temp文件夹中文件的自定义操作,这些操作在干净安装时运行良好。
  • 然而,在更新方面,自定义操作失败,因为似乎Temp文件已作为AI_RemoveAllTempFiles操作的一部分被删除

此操作似乎是在安装初始化之后和安装完成后完成的。 有没有办法在更新时关闭临时文件的删除,还是应该删除在安装初始化时完成的AI_RemoveAllTempFiles操作?

我试图使用OLDPRODUCTS属性来尝试停止AI_RemoveAllTempFiles操作,但它似乎没有用。我的意思是我已经修改了InstallExecuteSequence表,使OLDPRODUCTS =""条目的条件为AI_RemoveAllTempFiles

1 个答案:

答案 0 :(得分:2)

我怀疑发生的情况是旧版本的应用程序删除了临时文件,而不是新文件。即,当新程序包中的标准操作 RemoveExistingProducts 触发卸载时,它会执行此操作。您可以轻松地在verbose log中看到这一点。

要在更新期间避免此问题,您应该在 Temporary 文件夹的子文件夹中添加临时文件。此子文件夹应具有每个版本的唯一名称,例如,您可以将其设置为 [| ProductCode]

在自定义操作中,要确保始终获取临时文件的正确路径,请使用其共同属性,即每个临时文件都关联了一个唯一属性,当您双击文件和文件夹页面,此属性解析为文件的完整路径。