NSIS Идентификация нескольких деинсталляторов - PullRequest
1 голос
/ 29 марта 2011

У меня есть несколько экземпляров программы, и у каждого есть свой каталог установки с собственной копией деинсталлятора.Программа установки имеет поле с именем «$ instance», введенное пользователем, которое записывается в реестр следующим образом:

HKLM «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ @ vendor.name @ \ @ product.name @ @ product.version @ \устанавливает \ $ instance "

, который работает нормально.Этот ключ содержит корневой путь установки.

Я хотел бы удалить экземпляр программы, соответствующий выполняемому деинсталлеру, но в разделе удаления не сохраняется переменная «$ instance», которую пользовательвведено во время установки.

Есть идеи?

Пример:

Section Uninstall
    ; THIS does not display the instance name. :(
    MessageBox MB_OK "$instance"
SectionEnd

1 Ответ

3 голосов
/ 29 марта 2011

Вы можете сохранить пользовательских данных в конце uninstaller.exe, не прерывая проверку CRC, или, альтернативно, сохранить их в .ini в том же каталоге, что и деинсталлятор (я делаю это все время, просто назовите INI-файл «uninstaller.dat» или что-то в этом роде, чтобы пользователи не связывались с ним)

...