为了准备需要密码的安装程序,我编写了一个innosetup脚本。为了将密码与innosetup代码分开,我准备了一个.ini文件,innosetup将从中读取密码。两个存档文件和要编译的应用程序都在同一个文件夹中。
——创新。国际空间站——
#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 Compiler 5.4.2(u)
win7 64bit
Password指令不能包含运行时常量,因此密码实际上是{ini:{#MyPswd},Settings,pswd|test}
。如果希望在编译时包含密码,则需要使用ISPP读取ini文件值并使用{#emit}
:
{#ReadIni(MyPswd, "Settings", "pswd", "test")}
(未经测试但应该可以工作)