Side-by-Side COM with Windows XP and .NET
Yesterday, I spent some time experimenting with the side-by-side support for COM components within Windows XP. I’ve uploaded my sample code here.
Windows XP uses .manifest files a bit like .NET uses .config files to describe “assemblies” and to identify where the files containing the implementation of specific versions of COM component are located. This works with .NET applications too and my sample shows how to use the same .NET executable located in two different folders to call private copies of two versions of the same VB6 COM DLL. Incidentally, this means the DLL doesn’t have to be registered, which means I can xcopy deploy it and not need admin access.
My original goal was to find out whether it is possible to deploy a .NET assembly as a COM component through interop using the side-by-side support because this would give you xcopy deployment with no registration required. Unfortunately, due to the way interop assemblies are declared in the registry, I’m not sure that this is a possibility.