从.ini文件中读取常量以进行Inno Setup编译



为了准备需要密码的安装程序,我编写了一个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")}

(未经测试但应该可以工作)

最新更新