InstallShield не будет перезаписывать файл во время обновления

В моей функции OnFirstUIAfter я переименовываю только что установленный файл, используя:

RenameFile(FileName1, FileName2);

В моей функции OnMaintUIAfter я снова устанавливаю FileName1, но ему нужно перезаписать FileName2, как это было при первоначальной установке. Если я просто использую:

RenameFile(FileName1, FileName2);

Ничего не произошло. У меня все еще есть оба файла в INSTALLDIR, а FileName2 устарел.

Полагая, что проблема заключается в том, что установочный скрипт не может переименовать существующий файл, я решил удалить файл до переименования.

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

И все же ничего не происходит. Оба файла все еще находятся в INSTALLDIR.

Имейте в виду, что FileName2 не является файлом, устанавливаемым при любой предыдущей установке. Все установки устанавливают FileName1, а затем переименовывают его в FileName2.

Любые слова мудрости? У меня совершенно нет идей.

SH

1 ответ

Моими лучшими мудрыми словами было бы перестать писать собственные действия. Изучите правила компонентов и правила управления версиями файлов, и пусть MSI сделает всю тяжелую работу за вас. Вне процесса нестандартные действия будут только мутить воду.

Другие вопросы по тегам