inno-setup – 如何让Inno Setup检查文件是否不存在
发布时间:2020-12-15 04:11:05 所属栏目:大数据 来源:网络整理
导读:当我编译下面的Inno Setup脚本时,它给了我一个错误(下面).我从 here借了代码,所以我不确定为什么它不能正常工作. Line 136:Column 10:Invalid prototype for 'FileDoesNotExist' 第136行是函数FileDoesNotExist(file:string):Boolean; [Run]Filename: "{sy
当我编译下面的Inno Setup脚本时,它给了我一个错误(下面).我从
here借了代码,所以我不确定为什么它不能正常工作.
Line 136: Column 10: Invalid prototype for 'FileDoesNotExist' 第136行是函数FileDoesNotExist(file:string):Boolean; [Run] Filename: "{sys}regsvr32.exe"; Parameters: "msstdfmt.dll"; WorkingDir: {app}ProntoPrograms; BeforeInstall: FileDoesNotExist(ExpandConstant('{sys}msstdfmt.dll')); StatusMsg: "Registering Controls..." [Code] function FileDoesNotExist(file: string): Boolean; begin if (FileExists(file)) then begin Result := False; end else begin Result := True; end; end; 解决方法
从
Inno Setup documentation:
换句话说,它不能是一个功能,因为它不能返回任何东西;这是一个程序. (您可以从链接页面中的示例中看到它们都被声明为过程,并且它们都没有在代码中包含Result.) (您链接的问题也是错误的,BTW.它显示了一个返回类型为布尔的过程,这当然是不可能的.我怀疑它是否有效,因为使用的Pascal解析器没有注意到由于声明中的过程而返回值.) 无论如何,看起来你正试图做错.如果msstdfmt.dll与您的设置一起分发,您应该将其添加到[Files]部分,并设置onlyifdoesntexist和regserver标志.如果它已经安装在用户的系统上,则应该已经注册了. [Files] Source: "msstdfmt.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist regserver (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |