我有一个Inno-Setup,内部只是启动另一个设置。 (我想用InnoSetup完全重建它,但还没有时间这么做。)
要运行此内部设置,我需要提供一些zip文件。目前我手动创建这些zip文件并将它们复制到我的InnoSetup-Folder中。 我的想法是,让InnoSetup编译过程创建自己的zip文件。所需文件位于不同(但固定)的文件夹中。
有选择吗?
这是一个更直观的例子:
当前流程
所需流程
感谢您的建议
答案 0 :(得分:3)
如何使用TUGZip将文件添加到存档?
你正在使用非常奇特,但脚本友好的归档。简而言之,您可以为归档程序的TzScript.exe
命令行工具创建一个脚本文件,如下所示。要Archive
属性分配归档的目标名称,请使用正确的WorkingDir
和要添加到归档的Data
放置文件。我已经对存档名称进行了硬编码,但即使是这个脚本文件也可以由InnoSetup预处理器制作(但这超出了这个问题的范围):
function main()
{
var Comp = new Compress();
Comp.Archive = "d:\\DeployFolder\\Archives\\Archive1.zip";
Comp.Type = "ZIP";
Comp.Compression = 3;
Comp.WorkingDir = "d:\\ArchiveFolder\\";
Comp.Data = "File1.txt,File2.txt";
Comp.Password = "";
Comp.DateExtension = 0;
Comp.TimeExtension = 0;
Comp.Overwrite = 1;
Comp.Recurse = 0;
Comp.StoreFolderNames = 1;
Comp.IncludeHiddenFiles = 1;
Comp.DoCompress();
}
如何在InnoSetup脚本编译之前执行TUGZip命令行归档?
比将它放入InnoSetup脚本要简单得多,就是创建一个批处理文件,这将完成归档程序的所有工作,在完成部署文件夹中复制的全新归档后,它将启动InnoSetup编译或只是打开InnoSetup脚本文件。
如果您想在InnoSetup脚本中使用此功能,则需要使用预处理器的Exec
功能。由于它是一个预处理器函数,它在InnoSetup脚本编译开始之前执行,所以它是你可以做这样的事情的理想场所。