Updating a ThinApp can seem like a really tricky or difficult process, but in reality it is a very simple process (relatively speaking and, of course, dependent upon the application).
Updating an Application:
Regardless of ThinApp, with the nearly infinite number of Windows applications, there are literally just as many ways in which updates are performed upon those applications. Of all the ways application updates are accomplished, with regards to ThinApp, they can generally be boiled down into four types of updates.
- Manually changing the application or reconfiguration of the application’s settings from within the app.
- Copying in updates through Windows Explorer or manually entering in registry or config file modifications.
- Run the update directly from within the application via it’s built in update feature.
- Install a separate hotfix / update package to the application.
- Any combination of the above.
Whichever way is chosen, these options can also be used to update a ThinApp packaged application as well.
One of the easiest ways to ensure you get your ThinApp package updated correctly is test it in the native world. This may seem redundant on some levels, but you will gain experience with the application if you are somewhat unfamiliar with how it works and how it’s updates are applied. Additionally, this can be done on a clean Capture and Build (CnB) system – giving you the opportunity to capture the app with the upgrade separately to give you a baseline of what the updated project should be similar to.
ThinApp Project Updating – Capturing the App:
One of the first ways we can update a ThinApp project is to just capture a new one. While this isn’t traditionally seen as an actual “update”, it is definitely an option.
Additionally, one can also capture just the update – although this is not recommended as it can be a cumbersome and troublesome process. Plus, there are easier ways to achieve the same results.
ThinApp Project Updating – Manually Customizing the Project:
Another option for updating a ThinApp project is to directly modify the application’s files/registry settings within the ThinApp project. A minimally skilled application packager can easily accommodate simple modifications to a ThinApp project by simple file manipulation. As ThinApp has no need for an external editor GUI, this is easily accomplished via Windows Explorer and Notepad.
One can simply edit the files within the project just as they would on a natively installed version of the application. Simply replace the actual path with the variable path to find the files and folders you are looking for.
Virtual Registry Hive Mods – Beware!
One thing to beware of when modifying the virtual registry hive text files is to ensure the file is edited properly and spaces are left between each of the registry key sections.
ThinApp Project Updating – SBMERGE:
Aside from the above, the last way to update a ThinApp Project is to import the settings from within the Application’s Sandbox.
Remembering the sandbox to be a “Runtime Modification Storage Area”, this means if the application packager can install the update through the virtual bubble, the update is applied to the sandbox.
To do this…
- Start with a clean sandbox – otherwise one runs the risk of contaminating the application with additional modifications or settings which might be undesirable.
- If the application has a built in update feature, just launch the application and run the update feature. If the application update is via a separate hotfix / update, run the update.
NOTE: The person who is the application packager may have to reconfigure the PACKAGE.INI in order to allow access to the virtual CMD or other tools to view the virtual file system and launch the hotfix / update. Typically this is a simple modification to the Entry Point for those items within PACKAGE.INI – setting the “Disabled=1” value to “Disabled=0” or remarking it out with a semicolon. This modification requires a rebiuld of the ThinApp package before applying the upate to the app sandbox and executing the sandbox merge into the project via SBMERGE.EXE. Then, once the updated sandbox is merged, resetting the “Disabled=0” value to it’s original state and rebuilding will remove access to the ThinApp via that specific Entry Point (i.e. CMD, etc.).
- Once the update is in the app and everything has been tested to work, use SBMERGE to merge the sandbox back into the project.
Simple SBMERGE Process:
Here is my simple SBMERGE procedure which works flawlessly every time:
- Make a copy of the original ThinApp Project WITH the BIN folder and it’s contents (EXEs/Data Container).
- Clear the SANDBOX within the %APPDATA%\THINSTALL folder.
- Run the primary app in the project to be updated.
- Update the app with plugins, settings, updates, modifications. Close the app.
- Relaunch the app and test the updates exist and work.
- Close the app.
- Open CMD natively.
- Change Directories (CD) into the project to be updated.
- Type “SBMERGE APPLY”
NOTE: If successful, the ThinApp Sandbox for this packaged app will have been removed from %APPDATA%\Thinstall.
- Execute BUILD.BAT within the project just updated by SBMERGE.
- Run new version of ThinApp packaged app to test updates/mods.
- Deploy via AppSync, Side-by-Side, MSI (via ESD), etc.
This was previously documented here on the ThinApp Blogs.