views:

103

answers:

1

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:

  1. 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.
  2. Install the app to its own folder and use a cofiguration file to refer to the MOSS Assembly, using the codeBase element.
  3. 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?

+1  A: 

Aren't these assemblies deployed to the GAC as well? Microsoft.Office.Server is in the GAC, and so is Microsoft.Sharepoint.

AFAIK Microsoft.Sharepoint.Administration is not a dll.

RedDeckWins
It's a namespace. I'll edit th ost to clarify that.
David Reis
regardless, the assemblies are in the GAC and the runtime will find them for you when it is deployed.see http://support.microsoft.com/kb/837908
RedDeckWins
They are GACed yes. I was using debug versions which had different signatures than the ones in the GAC and that's the reason they were not being found. Now it works.
David Reis