使用此脚本:
Source: "{tmp}\HelpDocSetup.exe"; \
DestDir: "{app}"; \
Flags: external deleteafterinstall; \
Tasks: downloadhelp; \
Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), '{#HelpDocSetupURL}', 'My_Setup', 'Get', 0, 0 )
在行尾看到0, 0
吗?
根据DwinsHs_Check
的文档规定:
文件大小:LongInt
与
FileSizeHigh
参数一起指定 文件大小(以字节为单位)。它将用于计算下载量 进度和剩余时间。这样可以避免下载之前的延迟 因为脚本不必从中获取文件大小而开始 服务器。此参数指定文件大小的低31位,而
FileSizeHigh
参数指定文件大小的高31位。请注意,不是32位。请注意,如果使用参数,将从服务器获取文件大小 设置为
FILESIZE_QUERY_SERVER (0)
,FILESIZE_UNKNOWN (-1)
或FILESIZE_KEEP_FORMER (-2)
。在这种情况下,FileSize
的值 参数将被忽略。注意,此参数只能使用数字值,常数 标识符不能使用。
FileSizeHigh:LongInt
与
FileSize
参数一起指定 文件大小(以字节为单位)。它将用于计算下载量 进度和剩余时间。这样可以避免下载之前的延迟 因为脚本不必从中获取文件大小而开始 服务器。此参数指定高31位 文件大小,并且
FileSize
参数指定低31位 文件大小。注意,如果FileSize,则将忽略此参数的值 参数设置为
FILESIZE_QUERY_SERVER (0)
,FILESIZE_UNKNOWN (-1)
, 或FILESIZE_KEEP_FORMER (-2)
。注意,此参数只能使用数字值,常数 标识符不能使用。
这个特殊的安装文件也在我的计算机上。相对于主要ISS文件,路径为:
..\HelpNDoc\CHM\Output\PublicTalksHelpDocumentationSetup.exe
我们可以使用ISPP提取文件大小并将其分割为DwinsHs_Check
所需的两个参数吗?
答案 0 :(得分:1)
您可以使用FileSize
preprocessor function来检索文件大小。但仅限于2GB = 31位。与FileSize
的{{1}}参数对应的内容:
DwinsHs_Check
如果文件理论上可以超过2GB,则您必须使用其他方式来检索文件大小,例如通过使用Exec
preprocessor function调用PowerShell代码。而且,由于Inno Setup预处理程序始终无法使用64位数字,因此您应该立即将大小分为PowerShell(或其他)代码的两部分。
有关调用PowerShell代码并返回其结果的示例,请参见: