Large Packages
Previous  Top  Next


Windows Shell Limitations for displaying Icons

Thinstall supports packages of unlimited sizes, however on some Windows platforms the windows shell (explorer.exe) has limitations on how it displays icons and may not display the icon for an EXE file once it reaches a certain size.

Explorer.exe tries to map the entire EXE file into memory so it can access the Icon resources. If there is not enough available virtual memory address space, this file mapping operation will fail. Typically an application will have a maximum of 2GB of address space, though DLLs, the process heap, and other objects will break up the virtual address space so a smaller maximum block is actually available. On most computers, Windows XP will not display icons for EXE files larger then 600MB. Windows Vista does not appear to have this limitation.

Luckily there is a very easy work-around for this problem. When building a large package, you can create two files:
- One large file containing the package data
- One small file containing Icon Information

Example (Before):
package.ini
----------------------------------------------

[LargeApplication.exe]
Source=%ProgramFilesDir%\LargeApplication.exe
ReadOnlyData=bin\Package.ro.tvr
----------------------------------------------



Example (After):
package.ini
----------------------------------------------

[LargeApplication.dat]
Source=%ProgramFilesDir%\LargeApplication.exe
ReadOnlyData=bin\Package.ro.tvr

[LargeApplication.exe]
Source=%ProgramFilesDir%\LargeApplication.exe
Shortcut=LargeApplication.dat
----------------------------------------------