Home > Blogs > VMware ThinApp Blog


Common SYSTEM32 DLLs Needed for Older / Troublesome Apps

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.

SYSTEM32 DLLs

MFC40.DLL
MFC40U.DLL
MFC42.DLL
MFC42U.DLL

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.)
MSVCRT.DLL
MSVCRT20.DLL
MSVCRT40.DLL
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)
COMCTL32.DLL
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.

  1. 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.
  2. There may be other DLLs which are not listed here that might need to be added to your ThinApp project's %SYSTEMSYSTEM% folder.
  3. 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.

Tips

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.

This entry was posted in Isolation, Tips, Troubleshooting and tagged , on by .
Dean Flaming

About Dean Flaming

Dean is currently a member of the VMware End User Computing Enablement and Lighthouse Support team working to develop communications around VMware End User Computing products and solutions as well as support many various Lighthouse accounts with their own EUC practices. Prior to this, from 2008 through 2012 Dean was one of VMware's End User Computing Specialists. Throughout his time at VMware, Dean has also written and published various articles, videos, and podcasts regarding VMware's EUC Solutions.

2 thoughts on “Common SYSTEM32 DLLs Needed for Older / Troublesome Apps

  1. joel

    This was just what I asked about on the forums some days ago!
    So the winsxs subfolders goes into %systemroot%\winsxs but then you have to copy the files again to %systemsystem%?
    I have to try this later this week.

  2. Dean Flaming

    Joel-
    Usually you won’t have to copy them into the %SYSTEMSYSTEM% folder as the Setup Capture process will automatically determine what it needs from the WinSxS folder when the call is made to Windows for the specific version. However, in the even the capture system was not “clean enough” (i.e. the WinSxS files existed from another installation on that capture system), then in some cases you may need manually copy them into your %SYSTEMSYSTEM% folder to ensure the packaged app only sees the version it needs.

Comments are closed.