以这个脚本为例:
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的文档,它声明:
FileSizeHigh参数一起指定文件大小(以字节为单位)。它将用于计算下载进度和剩余时间。这避免了下载开始前的延迟,因为脚本不必从服务器获取文件大小。
此参数指定文件大小的低31位,FileSizeHigh参数指定文件大小的高31位。注意,不是32位。
注意,如果参数设置为FILESIZE_QUERY_SERVER (0)、FILESIZE_UNKNOWN (-1)或FILESIZE_KEEP_FORMER (-2),则将从服务器获取文件大小。在这种情况下,FileSize参数的值将被忽略。
注意,只能在此参数中使用数字值,不能使用常量标识符。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所需的两个参数吗?
发布于 2019-06-03 11:07:51
可以使用 preprocessor function检索文件大小。但它仅限于2GB = 31位。什么与FileSize的DwinsHs_Check参数相对应?
#define ExeSize FileSize("..\HelpNDoc\CHM\Output\PublicTalksHelpDocumentationSetup.exe")
Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), '{#HelpDocSetupURL}', \
'My_Setup', 'Get', {#ExeSize}, 0)如果该文件理论上可以超过2GB,则必须使用其他方法检索文件大小--例如,使用 preprocessor function调用 preprocessor function代码。您应该立即将PowerShell (或其他)代码中的大小分成两部分,因为Inno设置预处理器无论如何都不能处理64位数字。
有关调用PowerShell代码并返回其结果的示例,请参见:
https://stackoverflow.com/questions/56425707
复制相似问题