C# 部署使用Sharepoint程序集的.Net应用程序

C# 部署使用Sharepoint程序集的.Net应用程序,c#,sharepoint,deployment,moss,C#,Sharepoint,Deployment,Moss,我正在开发一个用C#编写的工具来帮助管理MOSS(Microsoft Office Sharepoint Server)。它是通过使用sharepoint om提供的类实现的,例如名称空间Microsoft.sharepoint.Administration或Microsoft.Office.Server中的类 具体的组件是: Microsoft.Office.Server.dll Microsoft.Office.Server.Search.dll Microsoft.SharePoint.d

我正在开发一个用C#编写的工具来帮助管理MOSS(Microsoft Office Sharepoint Server)。它是通过使用sharepoint om提供的类实现的,例如名称空间Microsoft.sharepoint.Administration或Microsoft.Office.Server中的类

具体的组件是:
Microsoft.Office.Server.dll
Microsoft.Office.Server.Search.dll
Microsoft.SharePoint.dll

我的问题是如何在MOSS服务器上安装此工具,使其能够在加载时找到所需的程序集。AFAIK这些程序集位于%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\12\ISAPI中,但它们也可能位于管理员安装Sharepoint的其他位置

要解决这一问题,我可以想到以下方法:

  • 将应用程序安装到%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\12\ISAPI。这在普通情况下是可行的,但它会将我的二进制文件与共享点混合在一起,这是我宁愿避免的。如果管理员为Sharepoint选择了不同的路径,它也会失败,不过我可以通过在安装时检查注册表来找到正确的路径来解决这个问题
  • 将应用程序安装到自己的文件夹中,并使用codeBase元素使用一个配置文件引用MOSS程序集
  • 将MOSS程序集与我的应用程序一起部署。然后,它们将在目标机器中复制。这应该是可行的,但有两个问题:首先,我不确定我是否可以合法地重新分发DLL,即使它们只有在安装了MOSS的情况下才能工作;第二,一旦另一个service pack出现,这可能会导致问题,因为我重新分发的DLL和系统的DLL版本将不同步

  • 有人面对过这个问题吗?你是怎么解决的?有什么想法吗?

    这些程序集不是也部署到了GAC吗?Microsoft.Office.Server和Microsoft.Sharepoint都在GAC中


    AFAIK Microsoft.Sharepoint.Administration不是dll。

    这是基于web的应用程序吗?您正在部署到SharePoint server的winforms应用程序?它是一个控制台命令行工具。无论如何,程序集都在GAC中,部署时运行时将为您找到它们。看到了吗?是的。我使用的调试版本与GAC中的版本具有不同的签名,这就是找不到它们的原因。现在它起作用了。