我写了一个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
在安装过程中,输入“test”时出现密码错误。使用直接Password = test,它可以正确安装。
我做错了什么?
InnoSetup编译器5.4.2(u)
赢得7 64位
答案 0 :(得分:3)
Password指令不能包含运行时常量,因此密码字面为{ini:{#MyPswd},Settings,pswd|test}
。如果要在编译时包含密码,则需要使用ISPP读取ini文件值并{#emit}
:
{#ReadIni(MyPswd, "Settings", "pswd", "test")}
(未经测试但应该有效)