I’m often asked about best practices when it comes to cleaning up the project folder. This is not a simple subject because it varies greatly depending on the application you captured. I’ve been discussing with myself how to best attack this task. I ended up deciding for a blog post but this one will have the comments functionality turned on. This way I hope you, the readers, will help me make this post better by adding your own experience. I will now and then merge comments into the original post for ease of consumption.
Some general tips when it comes to cleaning up a ThinApp project folder:
- A virtual application is not as fragile as a natively installed application. So you can allow for some unnecessary files/registry keys within the project folder. Personally I do like an as lean and mean package as possible.
- When hunting for unnecessary components don’t delete the files. I move them into the Support folder found in the root of all project folders. This way I can easily restore files if needed.
- The size of the package does not have a direct impact on performance. If you have files not loaded or used in your package the ThinApp runtime will not load them, i.e. they will not affect your performance.
- MSI self repair will most likely not work within the virtual environment. Reason being the Windows Installer service always runs outside the virtual environment. So keeping MSI cache rarely makes any sense.
These folders contain files that can often be safely removed from your project:
%Cookies% %Drive_C%\Documents and Settings %Drive_C%\MSOCache %Favorites% %Fonts% (if the fonts are needed you may want to install them natively) %History% %Internet Cache% %SystemRoot%\Installer %SystemRoot%\ServiceProfiles %Temp%
It’s worth investigating the %ProgramFilesDir%\<app folder> for any backup or setup folders. These folders contain either backup of changed files during the installation or backup of setup files used for self-repair. Sometimes you need to go down a couple folders to find them.
In special cases you might want to clean up %AppData%, %Local AppData%, and %Profile% as well. Just make sure you don’t delete user settings you want to include in the package. If you don’t know the application in detail, trial and error is often the method you have to relay on when it comes to these locations.
What can and cannot be deleted from the registry is a little harder. The virtual registry is not very easy to browse in the format it’s stored as in the project folder. To make the task easier you can use a third-party tool. ThinAppHelper is a good candidate, http://www.cis.nl/thinapphelper/download.html. With this tool you can browse the project’s registry and easier delete whole branches. I don’t have any examples of what to delete in the registry. Please leave your suggestions as comments to this post.