Adjective,
Цитата:
Подскажите пожалуйста, что не так с кодом удаления ранее установленной версии программы в оригинальном файле "makensis.nsi"
|
А что именно с ним не так и что именно там не работает?
И в makensis.nsi, и в вышеуказанном "Auto-uninstall old before installing new" используется абсолютно одинаковый метод обнаружения установленной программы (считывание ключа UninstallString в ..\CurrentVersion\Uninstall\..). Вариант в makensis.nsi не стоит считать более правильным, т.к. во втором случае (auto-uninstall) считывание версии просто не требуется (хотя это можно применить, например, при записи журнала установки).
В makensis.nsi, как и в вышеуказанном
"Auto-uninstall old before installing new" используется похожий метод обнаружения установленной программы -- считывание ключа
UninstallString в
..\CurrentVersion\Uninstall\... Только что дополнительно читается
HKLM\Software\NSIS\@, а затем проверяется версия для реализации разных сценариев (Add/Reinstall - Uninstall - Do not uninstall)
Вариант в makensis.nsi не стоит считать более правильным, т.к. во втором случае (auto-uninstall) считывание версии просто не требуется (хотя это можно применить, например, при записи журнала установки).
Вариант с
Exec $INSTDIR\uninst-nsis.exe, очевидно, рассчитан на использование атрибута
InstallDirRegKey или установку по жёстко заданному пути.