Here are some of the more common System32 DLLs that we've had to manually add to ThinApp projects in order to get the ThinApp packaged application to work correctly on different operating systems.
Why do I need to copy some DLLs into my ThinApp Project in order for it to work?
Because the ThinApp capture process works by use of a delta comparison of two snapshots – a pre-installation snapshot and a post-installation snapshot – capturing everything an application installation does to a system to complete an installation is a very solid, tried-and-true process. The one thing which should be kept in mind, however, is what this means for pre-existing conditions when capturing an application for packaging – since the Microsoft Installer and other installer products such as the Wise Package Studio will only make configuration modifications to a system so long as those modifications are not already pre-existing on the system. What this means for ThinApp is, any files or registry entries that are present prior to capturing an application installation will not be captured as those conditions will be present in both the pre-installation and post-installation snapshots.
Therefore, in order to get your application package working on a Windows operating system it wasn't intended to run on, you may need to copy in the following SYSTEM32 DLLs into your ThinApp project.
NOTE: Sometimes there are other MFC DLLs which may need to be loaded but are not listed here. A review of the Log Monitor logs may indicate this.
MSVBMxx.DLL (where "xx" is the version number such as 50, 60, 70, 80, etc.)
MSVCPxx.DLL (where "xx" is the version number such as 50, 60, 71, 80, etc.)
COMADDIN.DLL (not often needed)
COMCAT.DLL (not often needed)
COMDLG32.DLL (not often needed)
COMMDLG.DLL (not often needed)
Things to remember
There are some things which must be kept in mind here, as these are, by no means, written in stone.
- Only add the DLLs to the ThinApp Project which you've deemed necessary. If a DLL doesn't fix the issue, remove it from your ThinApp project after testing is complete.
- There may be other DLLs which are not listed here that might need to be added to your ThinApp project's %SYSTEMSYSTEM% folder.
Another area to look at is %SYSTEMROOT%\WINSXS for the specific side-by-side COM Control components which your application might need.
NOTE: When adding WinSxS DLLs, copy the WinSxS subfolder into the ThinApp Project %SYSTEMROOT%\WinSxS folder then copy the contents of that subfolder into the %SYSTEMSYSTEM% folder of your ThinApp project in order for the file to be properly seen by the Virtual Operating System.
Tip 1 - Often with applications that require this level of modifications to the ThinApp projects, you'll see the need for a %TEMP% folder inside the ThinApp project with it's isolation level set to WRITECOPY.
Tip 2 - If at all possible, copy these files from your clean VM used to capture the application in question after you have installed the application natively onto the VM and have it working properly. In short, don't wipe the VM or reset it back to a clean state until you get the ThinApp packaged version of the application working properly.