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
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.