During development of a test build, it was found that in a compressed single-executable build, if an InstallAware executable is over 4GB in size, it cannot run on a 32-bit system.
Here is how the executable size limits are calculated:
Each process has its own virtual memory called an address space. This process maps the code that it executes and the data that the code references. A 32-bit application uses a 32-bit address space, which in using binary mathematics, shows that the cap on 32-bit applications is 4GB (or 2^32).
This identifies and explains the issue that was found, although there was more found about these address spaces:
The operating system that the application is running in has to reference its own code, and what it references as well. As a default, the 32-bit version of Windows splits the address spaces in half. So in all actuality, the maximum executable limit without support archives (such as .cab or .7zip), in a 32-bit environment, is approximately 2GB.
To solve this address space problem, any files within the application being installed that are not needed for the application to function, should be packed into local web media blocks within InstallAware.
In InstallAware, once you are done defining features of your application, web media blocks are automatically generated. All files within that feature will then be associated with that block.
They will by default have the download URL set to “www.mysite.com/files.7zip”.
To create a local web media block, simply open each block and remove the “wwww.mysite.com/” or any other trailing directories. Leave the name of the target 7zip file in the URL field, and InstallAware, upon build, will automatically compress the files under that defined block into local 7zip files that will then be called upon during installation.
Logan B. Lehman
Got a problem you cannot solve? Try here.
1 post • Page 1 of 1
Who is online
Users browsing this forum: No registered users and 10 guests