Inno设置,复制安装程序,要安装位置

问题描述 投票:0回答:1

我一直在尝试在运行安装程序时将Inno Setup生成的安装程序复制到安装目录。似乎文件已锁定,因为我的FileCopy命令没有任何结果。我尝试了一个消息框(在同一代码区域中),其中包含往返路径,并且两者都是有效的正确路径,但是不会复制安装程序。

这是将{srcexe}(安装程序路径)复制到{app}\OriginalInstaller.exe(应用程序安装路径)的行,对我无济于事。

    FileCopy(ExpandConstant('{srcexe}'), ExpandConstant('{app}\OriginalInstaller.exe'), False);

我是Inno Setup的新手,我在一篇相关文章中读到,这根本不可能做到-但是,没有给出任何理由。如果您知道为什么不可能做,那将是一个很好的知识。否则,我希望将安装程序复制到安装位置。

这样做的目的是,如果文件损坏,我可以重新运行安装程序。我有一个启动器程序,用于在启动时检查可执行文件的哈希值,如果它们不正确,它将重新运行安装程序。

提前感谢您的帮助!

windows exe inno-setup
1个回答
0
投票

确实FileCopy明确禁止应对安装程序本身。

我不知道是什么原因,但是可能有一些原因。因此请当心,您可能正在做安装程序不喜欢的事情。

无论如何,您可以使用FileCopy实现替换功能:

TFileStream class

这是将整个文件加载到内存的低效率实现。如果您的安装程序很大,则必须改进代码以分块复制文件。

© www.soinside.com 2019 - 2024. All rights reserved.