Чтение констант из INI-файла для компиляции Inno Setup - PullRequest
2 голосов
/ 09 октября 2011

Я написал скрипт innosetup, чтобы подготовить программу установки, требующую пароль. Чтобы отделить пароль от кода innosetup, я подготовил файл .ini, из которого innosetup должен прочитать пароль. Оба архива находятся в одной папке вместе с приложением для компиляции.

---- inno.iss -----

#define MyPswd "install.ini"
..............

[Setup]
..............
;Password=test                                 <- this works
Password={ini:{#MyPswd},Settings,pswd|test}    <- this doesnt work
............

---- install.ini -----

[Settings]
pswd=test

Во время установки я получаю ошибку пароля при вводе «теста». С прямым паролем = тест, он устанавливается правильно.

Что я делаю не так?

Компилятор InnoSetup 5.4.2 (u)
выиграть 7 64 бит

1 Ответ

3 голосов
/ 10 октября 2011

Директива Password не может содержать константы времени выполнения, поэтому пароль буквально равен {ini:{#MyPswd},Settings,pswd|test}. Если вы хотите включить пароль во время компиляции, вам нужно будет использовать ISPP для чтения значения ini-файла и {#emit} it:

{#ReadIni(MyPswd, "Settings", "pswd", "test")}

(не проверено, но должно работать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...