的文档说明了DownloadTemporaryFile
这个RequiredSHA256OfFile
参数:
如果
RequiredSHA256OfFile
设置,它将与下载文件的 SHA-256 进行比较,如果哈希不匹配,则会引发异常。如果出现错误,将引发异常。否则,返回下载的字节数。
RequiredSHA256OfFile
如果已设置且文件已下载,则返回 0 。
从这里的答案中,我确定获取校验和的正确命令行方法是:
CertUtil -hashfile MSAHelpDocumentationSetup.exe SHA256
这就是我将这个特定文件添加到我的脚本的方式:
AddFileForDownload('{#HelpDocSetupURL}', 'HelpDocSetup.exe');
扩展为:
procedure AddFileForDownload(Url, FileName: string);
begin
DownloadPage.Add(Url, FileName, '');
FilesToDownload := FilesToDownload + ' ' + ExtractFileName(FileName) + #13#10;
Log('File to download: ' + Url);
end;
有没有办法自动化:
- 获取我的文件的校验和。
- 将该校验和缓存到字符串中。
- 在构建脚本时使用该校验和值。
通过自动执行此任务,它将提供两个好处:
- 最大限度地减少复制/粘贴校验和值时的用户错误。
- 在没有用户交互的情况下保持校验和更新为最新。
这在使用 Pascal 脚本的 Inno Setup 中是否可行?