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 сделает всю тяжелую работу за вас. Вне процесса нестандартные действия будут только мутить воду.