I have covered this a couple of time before (hence the more and more obscure title) in various posts; here and here but I have been preparing IDLookup for install on Blackbaud’s OnDemand hosting service. Among several requirements is the fact that you have to install the plug-ins manually and not through an installer.
This would not normally be a problem if you were using a COM alternative as you would simply register the dll with regsvr32 and that would be the end of that. However when using .NET you cannot use regsvr32 but instead have to use regasm. There has always been an issue with using other .NET assemblies with the COM visible assembly. They would never be visible unless they sat in the General Assembly Cache (GAC). However putting items in the GAC on a hosted environment would probably not be acceptable since they would be available, and potentially would affect, all other users of that server.
By using regasm (which exists as long as the computer has .NET installed) everything can be installed into the plug-in directory. You would do the following:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /codebase “C:\Program Files\Blackbaud\The Raisers Edge 7\Plugins\IDLookup.dll”
The codebase switch would ensure that the location of the assembly is also stored when the assembly is registered for COM. One thing that you have to watch out for is that the versions of the other assemblies match the versions expected by the component. Unlike when assemblies are put in the GAC when they are stored locally the version number counts for a lot and your COM visible assembly will not see an incorrect version of the regular assembly.