【问题标题】:Advanced Installer: Stop installer from clearing temp files on upgrade高级安装程序:停止安装程序在升级时清除临时文件
【发布时间】:2014-02-25 20:17:21
【问题描述】:

我在进行更新工作的过程中遇到了问题。

使用的更新方法是先卸载再安装。

我的问题如下:

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

此操作似乎在安装初始化和安装完成后完成。 有没有办法在更新时关闭临时文件的删除,或者我应该只删除安装初始化时正在执行的 AI_RemoveAllTempFiles 操作?

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

【问题讨论】:

    标签: advanced-installer


    【解决方案1】:

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

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

    在您的自定义操作中,为确保您始终获得临时文件的正确路径,请使用它们的对应属性,即每个临时文件都关联了一个唯一属性,当您双击文件时出现的对话框中可见 文件和文件夹页面,此属性解析为文件的完整路径。

    【讨论】:

    • 是的,它基本上就是这么做的
    • 很高兴我能帮上忙。如果有帮助,请不要忘记将问题标记为已回答,以便其他用户也可以找到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多