在我的OnFirstUIAfter函数中,我使用:
重命名刚刚安装的文件RenameFile(FileName1, FileName2);
在我的OnMaintUIAfter函数中,我再次安装FileName1,但它需要覆盖FileName2,就像在初始安装中一样。如果我只是使用:
RenameFile(FileName1, FileName2);
什么都没发生。我仍然在INSTALLDIR中有两个文件,而FileName2已经过时了。
我认为安装程序脚本无法重命名现有文件存在问题,因此我决定在重命名之前删除该文件。
DeleteFile(FileName2);
RenameFile(FileName1, FileName2);
仍然没有任何反应。这两个文件仍然在INSTALLDIR中。
请记住,FileName2不是任何先前安装所安装的文件。所有安装程序都安装FileName1,然后将其重命名为FileName2。
任何智慧的话语?我完全没有想法。
SH
答案 0 :(得分:2)
我最好的智慧之词就是停止编写自定义动作。了解component rules和file versioning规则,让MSI为您做繁重的工作。过程中的自定义操作只会使水域变得混乱。