2010-05-12 7 views
2

Я использую NSIS для создания моих инсталляторов/деинсталляторов, а у деинсталлятора, похоже, странное поведение.NSIS Uninstaller Рабочий каталог

Я не устанавливаю установщик в $ INSTDIR, он находится в $ INSTDIR/subdir/uninstall.exe (это установщик аддонов для хост-приложения).

Когда я запускаю установщик, тогда он считает, что корень установки приложения составляет $ INSTDIR/subdir вместо $ INSTDIR. Затем он не может найти все файлы в subdir/*, поскольку он уже находится в subdir.

Если я перемещаю исполняемый файл, он просто принимает текущий каталог, где находится корень установки приложения. Я могу переместить его в $ INSTDIR, и все хорошо.

Спасибо.

ответ

4

$ INSTDIR в деинсталлятор только каталог деинсталлятор в (не то же самое, текущий каталог обязательно)

Если вы можете просто положить деинсталлятор в корне установки, что это лучший вариант, в противном случае вам нужно сделать что-то уродливое, как strcpy $instdir "$instdir\..", или использовать определение в каждом вызове Delete/RMDir.

В качестве альтернативы, если вы сохраните установочный каталог где-то в реестре во время установки, его можно прочитать в деинсталляторе.

Смежные вопросы