cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Barvaz
Level 6

Install zip file and uncompress it

Hi

I need to make a package which contain more than 32,767 installed files – I can’t reduce the number of files.
I tried to increase the limit of a database column as describe in http://msdn.microsoft.com/en-us/library/aa367767.aspx with no success.
I would like to zip all the help files to 1 zip file (Online_Help.zip) and to configure my installer to install the entire help library as one giant ZIP file.
How can I run a script to expands/uncompressed and deletes the ZIP by install script?

Please suggest.

Thanks,
Labels (1)
0 Kudos
(3) Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

A custom action would be required to extract files from a ZIP file at runtime. An EXE, DLL, InstallScript, or VBScript action could be used depending on how you would like to author the custom action.

Note that if your project includes more than 32,767 files through static and dynamic file links, InstallShield should automatically switch the template MSI used at build time to create a release MSI to a template that uses a larger column size for the File.Sequence column; warning -6651 is logged if this situation occurs.
0 Kudos
Barvaz
Level 6

joshstechnij wrote:
A custom action would be required to extract files from a ZIP file at runtime. An EXE, DLL, InstallScript, or VBScript action could be used depending on how you would like to author the custom action.

Note that if your project includes more than 32,767 files through static and dynamic file links, InstallShield should automatically switch the template MSI used at build time to create a release MSI to a template that uses a larger column size for the File.Sequence column; warning -6651 is logged if this situation occurs.


Yes, i want to do it by InstallScript as custom action - what is the Install Script command to Compress/Uncompressed ZIP file?

My project includes more than 32,767 files through dynamic file links. And the InstallShield doesn't automatically switch the template MSI used at build time to create a release MSI to a template that uses a larger column size for the File.
My Compilation failed on Build Error 5023 - certainly i prefer to do it nationality by increase the limit of a database column. As i wrote i tried with no success 😞
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

InstallScript (nor any other custom action types) provide any built in method for manipulating zip files. You may try calling the Windows shell APIs that work with zip files or a third party library if available.

Regarding the issue with InstallShield's functionality for switching to the correct MSI template for large file counts, there appears to be an issue when using "best practice" dynamic file links (which are the default type) that results in file in subfolders for any of these links not being counted when determining which template MSI to use at built time. We've been able to reproduce this behavior with a test project using dynamic file links (best practice) that contain over 37,000 files in subfolders of the root link folder. I've submitted work order IOA-000070120 to address this issue in a future release.

As a work around, if you do not want to install files through a zip file, the following should allow you to use the large template MSI:
1. Open Windows Explorer and browse to Program Files\InstallShield\2012\Support\0409 (or 0411 if you are using a Japanese IDE).
2. Look for the file ISMsiPkg.itp and rename it to something like ISMsiPkg.itp.original.
3. Look for the file IsMsiPkgLarge.itp and rename it to ISMsiPkg.itp.

These steps will result in the large MSI package template (which has the Sequence column of the File table set as a 4-byte integer instead of 2-byte) being used for all builds of MSI projects on the machine(s) these steps were performed on. In general, this should not result in any issues for projects that have less than 32,767 files. To undo this work around, rename the files back to their original names.
0 Kudos