Inno setup 防止目录被多次压缩

Inno setup 防止目录被多次压缩,inno-setup,Inno Setup,我正在使用Inno设置创建Java应用程序的设置。该设置由应用程序(JAR文件)和Java运行时(包含数千个文件的运行时目录)组成。运行时的压缩需要很长时间(几分钟),但对于任何新的应用程序版本,运行时都不会更改 可以只压缩目录吗?对安装程序的某些部分进行“预压缩”的唯一方法是为该子组件创建一个单独的安装脚本,并在主脚本中包含该脚本的编译输出以及[Run]或preparetoall条目,作为主安装的一部分以静默方式执行子安装。(您很可能希望在主脚本中使用此文件上的nocompression标志,

我正在使用Inno设置创建Java应用程序的设置。该设置由应用程序(JAR文件)和Java运行时(包含数千个文件的运行时目录)组成。运行时的压缩需要很长时间(几分钟),但对于任何新的应用程序版本,运行时都不会更改

可以只压缩目录吗?

对安装程序的某些部分进行“预压缩”的唯一方法是为该子组件创建一个单独的安装脚本,并在主脚本中包含该脚本的编译输出以及
[Run]
preparetoall
条目,作为主安装的一部分以静默方式执行子安装。(您很可能希望在主脚本中使用此文件上的
nocompression
标志,否则将失去大部分速度优势。)

请注意,这将产生一些额外的开销,因为您基本上是以这种方式存储安装引擎的副本,因此通常只适合大型子组件。您还必须决定卸载数据是单独保存还是与主应用程序一起保存,并相应地设置
AppId
s和卸载数据路径


在某些情况下(特别是对于用户可能已经从其他应用程序安装的运行时),您可能需要考虑按需下载,而不是在内部嵌入子安装,这将减少安装程序的大小(但在安装时需要Internet连接)。Inno没有内置下载功能,但有一些插件提供下载功能。

否,Inno安装程序当前不缓存内置安装程序块(它们是在构建过程中动态创建的),因此您无法预构建特定文件夹。您可以考虑的另一种方法可能是将该文件夹打包到存档中,然后由安装中包含的某个存档者手动将其解包。我将此作为一条评论发布,即使这是您喜欢或不喜欢的答案;-)作为学究,制作子安装程序并不是预压缩某些文件的唯一方法。您仍然可以创建一个归档文件,分发一些归档文件,并编写一组代码来解包(安装)和删除(卸载)其中的文件。但是,在大多数情况下,子安装程序听起来是个不错的方法。没错,我可能应该添加“本机”,即没有Inno之外的工具。但是这样做也有缺点,例如,卸载功能丢失(没有黑客)。好的,谢谢!我认为使用自己的打包程序来归档比等待几分钟来压缩JRE要复杂得多。