InstallShield在升级期间不会覆盖文件

时间:2013-12-05 03:45:35

标签: installshield installscript-msi

在我的OnFirstUIAfter函数中,我使用:

重命名刚刚安装的文件
RenameFile(FileName1, FileName2);

在我的OnMaintUIAfter函数中,我再次安装FileName1,但它需要覆盖FileName2,就像在初始安装中一样。如果我只是使用:

RenameFile(FileName1, FileName2);

什么都没发生。我仍然在INSTALLDIR中有两个文件,而FileName2已经过时了。

我认为安装程序脚本无法重命名现有文件存在问题,因此我决定在重命名之前删除该文件。

DeleteFile(FileName2);
RenameFile(FileName1, FileName2);

仍然没有任何反应。这两个文件仍然在INSTALLDIR中。

请记住,FileName2不是任何先前安装所安装的文件。所有安装程序都安装FileName1,然后将其重命名为FileName2。

任何智慧的话语?我完全没有想法。

SH

1 个答案:

答案 0 :(得分:2)

我最好的智慧之词就是停止编写自定义动作。了解component rulesfile versioning规则,让MSI为您做繁重的工作。过程中的自定义操作只会使水域变得混乱。