3

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

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

我的问题如下:

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

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

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

4

1 回答 1

2

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

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

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

于 2014-02-25T12:17:21.910 回答