4

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

如果是这样,我必须在不允许安装的情况下关闭安装程序。

所以,我有以下代码:

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

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

如何阅读VersionInfoVersionmySetup 中的信息?

4

1 回答 1

4

要正确比较版本号,您需要对版本号的每个组成部分进行数字比较。

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

当您在 PascalScript 字符串变量中同时拥有这两个变量时,您可以使用该CompareVersion()函数进行实际比较。

于 2013-05-10T15:55:15.887 回答