I have an interesting use case that I am trying to get working with my current ThinApp trial, to see if it is useful for our current environment.
- I have an application that is ~5Gb
- It may be installed in any number of locations on a client PC
- There are multiple, different, optional patches for this application that are ~500Mb each
- A user of the application will only have at most one of these patches installed at a time
- Some users will still be using the original base install and have no requirement for installing any patch
- When installed, these patches irreversibly modify the base application, and it needs to be reinstalled to switch to another patch
- There is no desire or requirement to package the base app itself, as this is generally deployed by an existing method
My hope was that I could package each patch up as a ThinApp (with a "Package X.exe" and "Package X.dat") and allow users to simply place them in the application folder.
This would allow the original app to remain unmodified, but when run inside the sandbox it would contain the modified data from the relevant patch
The blocker I have reached is that it doesn't seem possible to have the "current folder" as an expandable macro anywhere.
Ideally the package would simply contain the modified patch files and folders, and be run from the application folder, using "current folder" as merged.
The workaround I am considering at the moment is to use a script to locate the existing install on the machine, copy the patched files from wherever they are in the package over to that location (resulting in them being present in the sandbox), then launching the application.
Unfortunately, this results in extremely long load times (if sandbox is cleared on exit), or duplication of data (each patch is now stored both in the .dat file and in the sandbox).
Is there an easy method to have files packaged into the "folder where the thinapp is being executed"?
What I would try is the following:
- Install the 5 GB application on a development system
- Start setup capture
- Install the patch
- Create the necessary shortcut(s)
- End setup capture
- Clean and compile
When a user needs the base application it can be started using the local installed version on a production system
When a user needs a patched version it can be started using the generated thinapp executable on a production system.