I'm working on a tool written in C# to help administrate MOSS (Microsoft Office Sharepoint Server). It does do by using classes provided by the sharepoint om, such as the ones in namespaces Microsoft.SharePoint.Administration or Microsoft.Office.Server.
The specific assemblies are:
Microsoft.Office.Server.dll
Microsoft.Office.Server.Search.dll
Microsoft.SharePoint.dll
My problem is how do I install this tool on a MOSS server in a way in which it can find the assemblies it needs when it loads. AFAIK these assemblies are in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\12\ISAPI, but they could also be somewhere else, wherever the admin installed Sharepoint.
To solve tis I can think of the following ways:
- Install the app to %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\12\ISAPI. This would work on the common case, but it would mix my binaries with Sharepoints, which I would prefer to avoid. It would also fail if the admin has choosen a different path for Sharepoint, though I could solve that by checking the registry at install time for the correct path.
- Install the app to its own folder and use a cofiguration file to refer to the MOSS Assembly, using the codeBase element.
- Deploy the MOSS assemblies together with my application. They would be then duplicated in the target machine. This should work, but there are a couple of probems: First, I'm not sure if I can legally redstribute the dlls even though they will only work if MOSS is installed; and second, this might cause problems onc another service pack comes out, since the versions of my redistributted Dlls and the system's ones would get out of sync.
Has anyone faced this? How did you solve it? Any thoughts at all?