I have inherited a .NET/C# application that is supposed to talk to Lotus Domino through their COM interface. It was developed using a full installation of Lotus Notes, with the Domino type library referenced in the Visual Studio project by GUID.
However, now we want it to talk to a Lotus on USB (nomad?) server, which does not register any of those COM components in the registry.
My first thought was to set up SxS manifests to load the component, which seems to get part of the way there. To set this up, I did the following:
tlbimp domobj.tlb /out:DominoWrapper.dll /namespace:Domino
mt -tlb:domobj.tlb -dll:nlsxbe.dll -out:nlsxbe.dll.manifest
I referenced the DominoWrapper.dll
assembly in my project, and added this to the app.manifest:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="nlsxbe.dll" version="7.0.40.9082"
processorArchitecture="x86" />
</dependentAssembly>
</dependency>
It seems to load the DLLs ok, but when I try to instantiate the Domino.NotesSession()
object I get the following unspecified error exception:
System.Runtime.InteropServices.COMException (0x80004005): Retrieving the COM class factory for component with CLSID {29131539-2EED-1069-BF5D-00DD011186B7} failed due to the following error: 80004005 Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL)).
Does anyone know where I may have gone wrong here, or have suggestions for further debugging?