I have an application that uses a Microsoft DLL (Microsoft.ComponentStudio.ComponentPlatformImplementation.dll) which is used for OS deployment and accessing the catalog files. Version 6.0.0.0 is specific to the Windows Server 2008 catalog files. The newer version 6.1.0.0 is specific to Windows Server 2008 R2 catalog files. Attempting to access a catalog file with the incorrect version results in an exception.
My application (VB.NET using VS2005) needs to be able to access either version of these catalogs - I'd be happy with two executables (one for each catalog version) but obviously I don't want to maintain two sets of source code for each.
Specifying both sets of DLLs in the project reference is not possible as the DLL names are identical. I'd rather not have to manually add and remove the DLL references each time I want to a build. As far as I know the interfaces etc are effectively identical between the two.
I've read a few articles here and elsewhere about bindingRedirect, Assembly.Load etc but none seem to be bearing fruit.
Any guidance on the best path to follow would be greatly appreciated.
Thanks.