我在完成更新工作的过程中遇到了一个问题。
使用的更新方法是卸载然后安装。
我的问题如下:
AI_RemoveAllTempFiles
操作的一部分被删除此操作似乎是在安装初始化之后和安装完成后完成的。 有没有办法在更新时关闭临时文件的删除,还是应该删除在安装初始化时完成的AI_RemoveAllTempFiles操作?
我试图使用OLDPRODUCTS属性来尝试停止AI_RemoveAllTempFiles操作,但它似乎没有用。我的意思是我已经修改了InstallExecuteSequence表,使OLDPRODUCTS =""
条目的条件为AI_RemoveAllTempFiles
答案 0 :(得分:2)
我怀疑发生的情况是旧版本的应用程序删除了临时文件,而不是新文件。即,当新程序包中的标准操作 RemoveExistingProducts 触发卸载时,它会执行此操作。您可以轻松地在verbose log中看到这一点。
要在更新期间避免此问题,您应该在 Temporary 文件夹的子文件夹中添加临时文件。此子文件夹应具有每个版本的唯一名称,例如,您可以将其设置为 [| ProductCode] 。
在自定义操作中,要确保始终获取临时文件的正确路径,请使用其共同属性,即每个临时文件都关联了一个唯一属性,当您双击文件和文件夹页面,此属性解析为文件的完整路径。