我正在尝试使用{param}和{ini}填充设置部分值,如下所示:
VersionInfoProductName={param:NAME|My Product}
VersionInfoTextVersion={ini:ExpandConstant({src})\config.ini,setupValues,version|unknow}
但它无效,EXE属性显示{param:NAME|My Product}
我也试过GetIniString但结果相同。
如何在设置部分中输入ini值?
答案 0 :(得分:1)
您不能使用您使用的任何常量,因为您尝试填充的两个指令都需要在编译时填充。您将需要使用等效的预处理器函数,因为只有预处理器才能在编译开始之前填充指令值。
用于从INI文件读取的预处理器等价物是ReadIni
函数,您可以按照以下方式使用该函数。假设您将config.ini
文件存储在与包含此内容的脚本相同的位置:
[setupValues]
version=1.2.3.0
您可以通过这种方式填充VersionInfoVersion
指令的值。我已经使用了这个指令,因为VersionInfoTextVersion
指令的值只显示在系统下面的Windows 98上,我相信你没有运行这么旧的系统来验证这个:
[Setup]
VersionInfoVersion={#ReadIni(SourcePath + "config.ini", "setupValues", "version", "")}
注意,上面代码中使用的SourcePath
变量是predefined variable
,可以从预处理器中进行评估。然后,您可以通过检查设置二进制文件属性来验证结果,您将看到例如这样: