Inno setup Inno Setup设置Setup.exe创建日期和修改日期相同

Inno setup Inno Setup设置Setup.exe创建日期和修改日期相同,inno-setup,Inno Setup,默认情况下,编译Setup.exe时,Inno安装程序不会在编译之前删除现有文件,这意味着修改日期可能与创建日期不同,除非记住在编译之前手动删除Setup.exe。将日期和时间设置为相同的最佳方式是什么?我可以想出两种可能的方法来做到这一点。一种是在编译结束时在代码部分使用TouchDate和TouchTime函数,另一种是在编译之前使用ISSP部分自动删除Setup.exe。我不完全确定ISSP选项是否可行,但哪种方法最简单、更可取?有没有人对我应该采取哪种方法有什么建议,或者我忽略了另一种选

默认情况下,编译Setup.exe时,Inno安装程序不会在编译之前删除现有文件,这意味着修改日期可能与创建日期不同,除非记住在编译之前手动删除Setup.exe。将日期和时间设置为相同的最佳方式是什么?我可以想出两种可能的方法来做到这一点。一种是在编译结束时在代码部分使用
TouchDate
TouchTime
函数,另一种是在编译之前使用ISSP部分自动删除Setup.exe。我不完全确定ISSP选项是否可行,但哪种方法最简单、更可取?有没有人对我应该采取哪种方法有什么建议,或者我忽略了另一种选择?

这很可能是所谓的与Inno设置无关的结果。解决方法之一是生成一个批处理脚本,该脚本将运行编译器,并在编译后触摸时间戳(预处理器无法这样做,因为它在编译之前运行)。

Hmm,我不确定这是否是问题所在。如果在运行编译器之前删除Setup.exe,则会得到匹配的日期和时间。只有当文件已经存在时,我才会得到不匹配。我可以使用
DeleteFileNow
吗。这似乎是最简单的解决方案?嗯,看起来是这样的。在ISSP部分尝试了
#expr DeleteFileNow(SourcePath+“Output\Setup.exe”)
,这没有什么区别。只有在运行编译之前手动删除该文件时,它才起作用。烦人的ISSP无法使用
DeleteFileNow
删除此文件,因为当您单击“编译”时,文件被设置为锁定。您可以删除任何其他文件,但不能删除您编译的文件。看来批处理脚本是最简单的解决方案。一如既往,感谢您的帮助!这并不像我所希望的那样是一个优雅的解决方案,但仍然是一个有效且足够简单的解决方案。最后,我使用了www.softtreetech.com/24x7/archive/47.htm这里提供的FileTouch实用程序和以下批处理文件:
del/f/q“%~dp0\Output\Setup.exe”|%ProgramFiles(x86)%\Inno Setup 5\compile32.exe”/cc“%~dp0\MyScript.iss”|“%~dp0\Tools\FileTouch.exe”/c/w/a“%~dp0\Output\Setup.exe”>NUL