COM Components and Side-by-Side Execution
Multiple versions of a managed application that run side-by-side on a computer can interoperate with unmanaged COM components. Neither the managed application nor the COM component requires any modification for side-by-side execution to work properly. This topic introduces COM issues that are related to side-by-side execution.
This article describes side-by-side execution of unmanaged COM components that are used by managed applications. This is a different feature from the in-process side-by-side execution of managed COM components by unmanaged applications such as Microsoft Excel, as described in Side-by-Side Execution for COM Interop.
Side-by-side assemblies are unmanaged assembly versions running on the same computer. To use COM side-by-side assemblies, a .NET Framework application developer must provide a Win32-style application manifest, which contains binding and activation information. To learn more about COM side-by-side assemblies, search for "Side-by-Side Assemblies" in the MSDN Library.
The Type Library Importer (Tlbimp.exe) imports type library information as metadata in assemblies to expose a COM component to managed applications. When you have multiple versions of a COM component, you can have multiple type libraries, and possibly multiple versions of a primary interop assembly. In this situation, you have two choices:
You can register the newer primary interop assembly, overwriting the older version in the registry.
You can register a single primary interop assembly that supports multiple type libraries.
For instructions on specifying multiple type library versions in a single primary interop assembly, see Generating Primary Interop Assemblies.