2009-12-08 108 views
0

我正在使用C#编写的工具来帮助管理MOSS(Microsoft Office Sharepoint Server)。它可以通过使用sharepoint om提供的类来完成,例如命名空间Microsoft.SharePoint.Administration或Microsoft.Office.Server中的类。部署使用Sharepoint程序集的.Net应用程序

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

我的问题是如何在安装此工具一个MOSS服务器,它可以在加载时找到它需要的程序集。 AFAIK这些程序集位于%ProgramFiles%\ Common Files \ Microsoft Shared \ web服务器扩展\ 12 \ ISAPI中,但它们也可能位于其他位置,无论管理员安装了Sharepoint。

为了解决那朵我能想到的有以下几种:

  1. 安装应用的%ProgramFiles%\ Common Files文件\ Microsoft共享\ web服务器extensions \ 12 \ ISAPI。这将适用于常见的情况,但它会将我的二进制文件与共享点混合在一起,我宁愿避免这种情况。如果管理员为Sharepoint选择了不同的路径,它也会失败,但我可以通过在安装时检查注册表以获取正确的路径来解决此问题。
  2. 将应用程序安装到其自己的文件夹,并使用codeBase元素使用配置文件来引用MOSS程序集。
  3. 与我的应用程序一起部署MOSS程序集。他们将被复制到目标机器中。这应该有效,但有几个问题:首先,我不确定我是否可以合法地重新分配dll,即使它们只在安装了MOSS时才能工作;其次,这可能会导致另一个服务包出现问题,因为我的重新分配的Dll和系统的版本会不同步。

有没有人遇到过这个?你是如何解决它的?任何想法呢?

+0

这是一个基于Web的应用程序吗?您正在部署到SharePoint服务器的Winforms应用程序? – 2009-12-09 00:34:48

+0

这是一个控制台命令行工具。 – 2009-12-09 02:18:53

回答

1

这些程序集是否也部署到GAC? Microsoft.Office.Server位于GAC中,Microsoft.Sharepoint也是如此。

AFAIK Microsoft.Sharepoint。 管理不是一个dll。

+0

这是一个命名空间。我将编辑这个说明。 – 2009-12-09 02:18:23

+0

无论组件是否位于GAC中,运行时都会在部署时为您找到它们。 请参阅http://support.microsoft.com/kb/837908 – RedDeckWins 2009-12-09 02:37:57

+0

他们是GAC是。我使用的调试版本与GAC中的签名不同,这就是他们没有找到的原因。现在它可以工作。 – 2009-12-09 06:58:54