如何阅读我的设置的VersionInfoVersion以与现有版本进行比较

时间:2013-05-10 13:40:22

标签: inno-setup

在我的安装程序中,我必须检查所安装的版本是否低于计算机上已安装的应用程序版本。

如果是这样,我必须关闭安装程序而不允许安装。

所以,我有这个代码:

if GetVersionNumbersString(ExpandConstant('{app}\bin\application.exe'), Version) then
begin
...
end;

这将返回给我,计算机上应用程序的版本号。 我的问题是:

如何阅读mySetup的VersionInfoVersion中的信息?

1 个答案:

答案 0 :(得分:4)

要正确比较版本号,您需要对版本号的每个组件进行数值比较。

您可以使用ISPP的GetFileVersion()来获取您在编译时安装的文本版本号以及{#emit...}到PascalScript字符串变量中的文本版本号,或者在运行时使用PascalScript的GetVersionNumbersString()和通过ExpandConstants('{srcexe}')。然后,您可以再次使用PascalScript的GetVersionNumbersString()函数来获取要替换的应用程序的文本版本。

如果在PascalScript字符串变量中同时使用这两个变量,则可以使用CompareVersion()函数进行实际比较。