Sharing common files between multiple applications
Previous Top Next



Thinstall can allow common files to be shared across multiple application using 2 different methods:

Option 1: Package Multiple EXE files into a single file

As an example, imagine the following directory structure:


start.exe
|_____App1\
|_____Application1.exe

|_____App2\
|_____Application2.exe

|_____Shared
|_____Common.dll

|_____output
|_____ start.exe (compiled Thinstall package which contains all above files)


In this scenario, Thinstall can be used to package all files into a single "start.exe" file. Start should be a simple application that executes anything passed to it on the command line. In this fashion the user can run any application inside the package using different shortcuts.

To run application1.exe:
"start App1\Application1.exe"

To run application2.exe:
"start App1\Application2.exe"

Start.exe looks like this in C++ pseduo code:

int main(int argc, char **argv)
{
if (argc>1)
CreateProcess(argv[1]...);
}


Option 2: Distribute common files on the filesystem separately


App1\
|_____Application1.exe
datafile1.dat
|_____output
|_____ Application1.exe (compiled Thinstall package)

App2\
|_____Application2.exe
datafile2.dat
|_____output
|_____ Application2.exe (compiled Thinstall package)

Shared
|_____Common.dll


Installer (InstallShield / NSIS)
|_____Common.dll
Application1.exe
Application2.exe

Special notes about this approach:
- You should instruct Thinstall to load Common.dll using the External Modules Loaded tab. This ensures that:

1. Common.dl will be able to reference other DLLs in the App1 or App2 packages.
2. When Common.dll is loaded by Thinstall, it will not execute any code outside of the Thinstall controlled environment.