找不到SPSite命名空间

4

我找不到 SPSite 的命名空间。

到目前为止,我已经导入了以下内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using Microsoft.SharePoint;
using System.Collections;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint;
using System.Data.SqlClient;
using SP = Microsoft.SharePoint.Client;
using System.Data;


namespace GrandPermission
{
    class Program
    {
        static void Main(string[] args)
        {
            SPSite oSPSite = new SPSite("http://spdevserver:1002/");
        }
    }
}

而且SPSite仍然有红线。 enter image description here enter image description here


Spsite是Microsoft.SharePoint命名空间的一部分。您在顶部添加了两次引用,不确定是否会导致问题。当您尝试使用Microsoft.SharePoint.SPSite oSPSite = new Microsoft.SharePoint.SPSite("https://spdevserver:10002/");时会发生什么? - Robbert
@Robbert 我尝试了,但仍然有红线提示缺少引用。 - OPK
你是否在Visual Studio的引用部分中添加了对Microsoft.SharePoint的引用?仅添加“using Microsoft.SharePoint;”是不够的。 - Robbert
@Robbert,我添加了另一张截图,显示我添加的所有引用,请你看一下? - OPK
3个回答

12
这个错误是因为SPSite类服务器端对象模型API的一部分:

服务器端对象模型API只能在安装了SharePoint Server/Foundation的机器上使用。

由于您正在使用客户端对象模型API(项目中引用的程序集Microsoft.SharePoint.Client.dllSharePoint Server 2013客户端组件SDK的一部分),我建议您使用此API。

所以,这行代码:

SPSite oSPSite = new SPSite("http://spdevserver:1002/");  //SSOM

可以替换为:

using(var ctx = new ClientContext("http://spdevserver:1002/"))
{
    var site = ctx.Site;
    //...
}

参考资料


1
根据您的截图,您的项目引用中缺少对Microsoft.SharePoint的引用。您只有一个客户端dll的引用。
如果找不到它,请确保您正在SharePoint服务器上开发,即已安装SharePoint,或者在您的计算机上有该dll的副本。我看过一些论坛帖子,有人将SharePoint dll从SharePoint服务器复制到本地非SharePoint开发机器上。但是,我从未让它起作用。我总是在开发服务器上安装SharePoint并从其中运行Visual Studio。

我找不到 Microsoft.SharePoint.dll。我已经四处寻找,但是没有找到 Microsoft.SharePoint.dll。如果您能指导我正确的位置,我将接受这个答案。 - OPK
你在开发SharePoint服务器上的应用吗?你使用的是哪个版本的.Net?32位还是64位? - Robbert
在SharePoint服务器上开发?我认为这可能是问题所在,但我不知道你所说的“在SharePoint服务器上开发”是什么意思。我使用Visual Studio 2013在Windows 7桌面上进行开发,使用.net 4.0,64位。 - OPK
在 SharePoint 服务器安装完成后,您是否知道 Microsoft.SharePoint.dll 文件的位置? - OPK
应该放在bin文件夹中。 - Robbert

1

为了使用它,您需要将程序集Microsoft.SharePoint.dll添加到引用中。您可以在与之配合的SharePoint服务器上找到此DLL:

SharePoint 2013上,它位于:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI

在SharePoint 2010中,它可以在以下位置找到:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接