Managed add-ins fail or behave unexpectedly after you install a managed COM add-in that includes a custom application configuration file in Office 2003, in Office XP, and in Office 2000 (830468)



The information in this article applies to:

  • Microsoft Office XP, All Editions
  • Microsoft Visual Studio .NET (2003), Professional Edition
  • Microsoft Visual Studio .NET (2003), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2003), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2003), Academic Edition
  • Microsoft Visual Studio .NET (2002), Professional Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2002), Academic Edition
  • Microsoft Office Standard Edition 2003
  • Microsoft Office Small Business Edition 2003
  • Microsoft Office Access 2003
  • Microsoft Office FrontPage 2003
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2003
  • Microsoft Office Professional Edition 2003
  • Microsoft Office Student and Teachers Edition 2003
  • Microsoft Office Basic Edition 2003
  • Microsoft Office Excel 2003
  • Microsoft Office Outlook 2003
  • Microsoft Office Publisher 2003
  • Microsoft Office 2000 Premium
  • Microsoft Office 2000 Professoinal
  • Microsoft Office 2000 Standard
  • Microsoft Office 2000 Small Business
  • Microsoft Office 2000 Developer
  • Microsoft Access 2000
  • Microsoft Excel 2000
  • Microsoft FrontPage 2000
  • Microsoft Outlook 2000
  • Microsoft PowerPoint 2000
  • Microsoft Word 2000

SYMPTOMS

In Microsoft Office 2003, in Microsoft Office XP, and in Microsoft Office 2000, managed add-ins fail or behave unexpectedly after you install a managed COM add-in that includes a custom application configuration file.

CAUSE

This issue may occur when a managed COM add-in overwrites the existing configuration file.

Managed add-ins rely on the common language runtime (CLR) to load the assembly. By default, when the CLR loads the assembly, the CLR searches the path where the host application is installed to locate the configuration file. Therefore, when you deploy an application configuration file for a managed add-in, you typically create the Setup program so that it installs the configuration file to the folder where the host application is installed.

RESOLUTION

To minimize the risk of the configuration file being overwritten, implement one of the following solutions:
  • Use Visual Studio Tools for the Microsoft Office System (VSTO).
  • Use managed smart documents or managed smart tags that are loaded by using the VSTO loader.
  • Use managed smart tags that use a complex C++ smart tag shim.
  • Use managed COM add-ins that use a complex C++ add-in shim.
These solutions force the CLR to search for the configuration file in the installation folder of the managed add-in and to load the configuration file from the installation folder of the managed add-in. Therefore, you can deploy the configuration file to the same folder as the managed add-in. This should prevent the configuration file from being unintentionally overwritten.

MORE INFORMATION

Important Microsoft does not currently recommend, and does not support, using application configuration files when you develop and deploy a managed add-in.

Managed solutions that are developed by using VSTO automatically create an AppDomain logical container that contains an AppBase attribute set that references the location where the managed assembly was loaded. This forces the CLR to search for the configuration file in the installation folder of the managed add-in and to load the configuration file from the installation folder of the managed add-in.

By implementing an unmanaged shim, you can create your own AppDomain logical container and AppBase attribute for your managed smart tag solution or managed COM add-in solution.

For more information about the COM Shim Wizard, visit the following Microsoft Developer Network (MSDN) Web site:

REFERENCES

For more information about how the runtime locates assemblies, visit the following MSDN Web site:

Modification Type:MinorLast Reviewed:4/11/2006
Keywords:kbprb kbProgramming kbaddins kbtshoot KB830468 kbAudDeveloper kbAudITPRO