nsis - 如何在运行时设置 VIProductVersion
nsis - How to set VIProductVersion at runtime
我有一个包含文件版本(如 X.X.X.X)的 .ini 文件。
因此,我使用 ReadINIStr
来获取 'var' 格式的版本。
ReadINIStr [=11=] "C:\Users\a\Downloads\Info.ini" "Version" "VersionNumber"
StrCpy $varVersion [=12=]
以上代码导致 'varVersion' 的值存储在 ini 文件的版本中。
至此,我想要的值已经保存完好。
但是,用于 VIProductVersion 的值必须是使用 !define
的值。
- 不能使用
!define
以外的 variable
?
- 如果变量不可用,我可以将特定条目的值存储在
!define
中的 ini 文件中吗?
- 我知道可以使用
!define /file
命令读取文件内容。然而,我打算只读取 ini 文件的条目值。
VIProductVersion
是存储在安装程序 .exe 中的属性,只能在编译时由 makensis 设置。
您可以使用任何预处理器指令,如 !define
和 !searchparse
到 read/store 版本,但没有可用于读取 .ini 文件的指令。 !searchparse
如果 .ini 值名称在整个文件中仅使用一次,因为它不理解 .ini 部分,因此可以在紧要关头使用。
我有一个包含文件版本(如 X.X.X.X)的 .ini 文件。
因此,我使用 ReadINIStr
来获取 'var' 格式的版本。
ReadINIStr [=11=] "C:\Users\a\Downloads\Info.ini" "Version" "VersionNumber"
StrCpy $varVersion [=12=]
以上代码导致 'varVersion' 的值存储在 ini 文件的版本中。
至此,我想要的值已经保存完好。
但是,用于 VIProductVersion 的值必须是使用 !define
的值。
- 不能使用
!define
以外的variable
? - 如果变量不可用,我可以将特定条目的值存储在
!define
中的 ini 文件中吗? - 我知道可以使用
!define /file
命令读取文件内容。然而,我打算只读取 ini 文件的条目值。
VIProductVersion
是存储在安装程序 .exe 中的属性,只能在编译时由 makensis 设置。
您可以使用任何预处理器指令,如 !define
和 !searchparse
到 read/store 版本,但没有可用于读取 .ini 文件的指令。 !searchparse
如果 .ini 值名称在整个文件中仅使用一次,因为它不理解 .ini 部分,因此可以在紧要关头使用。