2 gigabyte MSI limitations?
InstallShield 2020 SAB is failing with 'ISDEV : fatal error 0:' on our Build Machines while generating a compressed installer. (I have InstallShield 2020 on my Development Machine)
Googling this error suggests I am running into the 2gb limit of a .msi.
The immediate problem comes from an installer (.exe) clocking in at 1.91gb and adding two files to the support dir (155mb and 85mb each).
The bigger problem is our installer has grown from 1.41GB to 1.91GB over the last 8 releases (two years or so).
- Is my googling correct, is there a 2GB limit for a .msi installer?
- I've also found InstallShield's limitation of a 2GB file size for the .cab files inside the installer. Are these related?
- I've found support articles about altering my compression level. I feel like this is a bandaid and does not address the long term issue of the installer size creeping up. Is there something I'm missing?
- I've also discovered the 'disk1' directory under Support Files. I am not seeing it get included in the compressed installer. Is there a mechanism to include it?
- It seems I have the long term issue of the installer size growing. Are there any tools that can help with reducing the size?
You are correct 2GB is the size limit for the CAB files included in the MSI package. This is a windows limitation and not a limitation from Installshield.
The solution here is to build an uncompressed release as the cab files are no longer in the MSI file and therefore this limitation no longer applies.
It would be possible to create a compressed setup.exe, however there is also a Windows limitation of 4GB on a portable executable file.
Whilst you could apply different compression levels to reduce the overall size of the package, this will ultimatley impact the installation speed as the installer will then need to uncompress and write the files to a temporary location to install them. As the size increases, so will the compression - and so will the installation time.
Ultimately the ability to reduce the overall size of your application is at the development level of the software - and if this is not possible then an uncompressed release will be the best option.