Hi,
Op 2-9-2025 om 16:47 schreef 'Fabian Grob' via innosetup:
The help for my software is a website, which I copy with the
installer. It contains a lot of small files (~12000 files, ~500MB
size).
The installation is a lot faster, when I pack all the files into
one 7z-archive, install the archive and then extract it manually
with ExtractArchive instead of add all the files to the
[Files]-section.
Can I somehow improve the speed with the files in the
[Files]-section? Or can the speed in general be improved somehow?
You can't really compare ExtractArchive and [Files]. ExtractArchive
is a straight forward extraction of the entire archive which does
very few other things, it doesn't even show progress. The [Files]
section uses a per-file extraction which does many things, per file,
and that's why the docs say not to use a solid archive.
To extract an entire archive but still show progress use
CreateExtractionPage instead of ExtractArchive. It doesn't do
anything else extra compared to ExtractArchive so it should be fast
as possible, but it also requires you to do the other stuff
manually, like handling uninstallation, probably by adding an
[UninstallDelete] entry.
I
want somehow compare the existing 7z-file with the one in the
installer. If they are equal, the file does not have to be
installed and extracted. I currently do this with a custom method
in the "check"-parameter of my [Files]-entry calling checkHash.
There's not enough information in your question, for example details
on how this 7z-file is 'installed and extracted' are missing, but
Setup has built-in support for hash comparisons between an already
existing file and the new file if they both have version numbers. It
does this when you set the replacesameversion
flag and the existing file and the new file have the same version
number.
Greetings,
Martijn Laan