Reference: Q0011
Article Last Modified on 28-May-2008
I build an XLL and it runs on my development machine. When the XLL is copied to a user's machine, it fails to load, and Excel shows a dialog box, saying: "This file is not in a recognizable format".

The table below lists all the DLLs required at run-time by XLLs built with various XLL+ libraries and DevStudio versions.
In addition, you can get a full list of the dependencies of a binary file by using the Dependency Walker tool, which is provided as part of Visual Studio 6, and which can also be found at http://www.dependencywalker.com/.
| Visual Studio | XLL+ Libraries | Build | Requirements |
|---|---|---|---|
| VS 6 | MFC | Debug | MFC42D.DLL MFCO42D.DLL MSVCP60D.DLL MSVCRT.DLL MSVCRTD.DLL XLCALL32.DLL1 |
| VS 6 | MFC | Release | MFC42.DLL MSVCP60.DLL MSVCRT.DLL XLCALL32.DLL1 |
| VS 6 | STL | Debug | MSVCRT.DLL XLCALL32.DLL1 |
| VS 6 | STL | Release | MSVCRT.DLL XLCALL32.DLL1 |
| VS.NET 2002 | MFC | Debug | MFC70D.DLL MSVCP60.DLL MSVCP70D.DLL MSVCRT.DLL MSVCR70D.DLL XLCALL32.DLL1 |
| VS.NET 2002 | MFC | Release | MFC70.DLL MSVCP60.DLL MSVCP70.DLL MSVCR70.DLL MSVCRT.DLL XLCALL32.DLL1 |
| VS.NET 2002 | STL | Debug | MSVCRT.DLL XLCALL32.DLL1 |
| VS.NET 2002 | STL | Release | MSVCRT.DLL XLCALL32.DLL1 |
| VS.NET 2003 | MFC | Debug | MFC71D.DLL MSVCP71D.DLL MSVCR71D.DLL MSVCRT.DLL XLCALL32.DLL1 |
| VS.NET 2003 | MFC | Release | MFC71.DLL MSVCP71.DLL MSVCR71.DLL MSVCRT.DLL XLCALL32.DLL1 |
| VS.NET 2003 | STL | Debug | MSVCRT.DLL XLCALL32.DLL1 |
| VS.NET 2003 | STL | Release | MSVCRT.DLL XLCALL32.DLL1 |
| VS 2005 | MFC | Debug | MFC80D.DLL MSVCP80D.DLL MSVCR80D.DLL XLCALL32.DLL1 |
| VS 2005 | MFC | Release | MFC80.DLL MSVCP80.DLL MSVCR80.DLL XLCALL32.DLL1 |
| VS 2005 | STL | Debug | MSVCRT.DLL XLCALL32.DLL1 |
| VS 2005 | STL | Release | MSVCRT.DLL XLCALL32.DLL1 |
1 XLCALL32.DLL is installed as part of Excel. It it is usually located in the same directory as the executable file EXCEL.EXE.
All DLLs must be available to Excel at run-time. This means that they must be located either:
Note that a standard Visual Studio license does not allow you to redistribute the Debug builds of Microsoft's run-time libraries. You should only redistribute Release builds.
When distributing DLLs for XLLs built with Visual Studio 2005, you should use the Microsoft installation program: follow the instructions for "Microsoft Visual C++ 2005 Redistributable Package (x86)" at URL http://www.microsoft.com/downloads/details.aspx?FamilyID=32BC1BEE-A3F9-4C13-9C99-220B62A191EE. You should ot install these files by hand.
For XLLs built using MFC and Visual Studio 2005, see also Visual C++ Deployment Examples (Microsoft).
If you wish to avoid any dependent files see Q0049: Build an MFC add-in which needs no runtime DLLs.