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

时间:2011-10-09 13:16:19

标签: inno-setup

我写了一个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位

1 个答案:

答案 0 :(得分:3)

Password指令不能包含运行时常量,因此密码字面为{ini:{#MyPswd},Settings,pswd|test}。如果要在编译时包含密码,则需要使用ISPP读取ini文件值并{#emit}

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

(未经测试但应该有效)