You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地引用Microsoft.SharePoint.dll能否连接SharePoint服务器文件夹?运行报错需安装SP2013吗?

SharePoint 2013 控制台程序连接问题解答

问题1:仅在本地计算机上引用Microsoft.SharePoint.dll,是否足以连接到SharePoint服务器文件夹?

绝对不够。Microsoft.SharePoint.dll只是SharePoint服务器端对象模型(SSOM)的核心组件之一,但它依赖一整套SharePoint专属的运行环境和其他程序集——比如你后面遇到的Microsoft.SharePoint.Library,还有很多注册在全局程序集缓存(GAC)里的相关组件。这些组件不是单纯复制引用就能工作的,它们需要SharePoint服务器安装过程中完成的系统配置、服务注册、GAC部署等一系列步骤支持。

简单说,SSOM的设计是只能在安装了SharePoint服务器的机器上运行,单纯引用DLL根本满足不了运行依赖。

问题2:使用SPSite类的代码时,是否需要在运行环境安装SharePoint 2013?

没错,必须装。SPSite、SPWeb这类SSOM类是完全绑定到SharePoint服务器本地环境的。它们的运行需要依赖服务器上的IIS配置、SharePoint服务实例、GAC中的所有相关程序集,还有系统级的注册表设置——这些只有在完整安装SharePoint 2013服务器的Windows机器上才会存在。你遇到的FileNotFoundException就是因为缺少这些必须的依赖组件,而这些组件无法通过手动复制DLL来解决。

替代方案:用客户端对象模型(CSOM)远程连接

如果不想在本地装SharePoint服务器,你可以改用SharePoint的客户端对象模型(CSOM)。它是专门为远程访问设计的,只需要引用两个独立的DLL(Microsoft.SharePoint.Client.dll和Microsoft.SharePoint.Client.Runtime.dll),不需要安装SharePoint服务器就能远程连接到SharePoint站点。举个简单的示例代码:

using Microsoft.SharePoint.Client;
using System;

class Program
{
    static void Main()
    {
        string siteUrl = "http://your-sharepoint-2013-site-url";
        
        using (ClientContext clientContext = new ClientContext(siteUrl))
        {
            // 使用当前用户凭证,或者指定用户名密码
            clientContext.Credentials = System.Net.CredentialCache.DefaultCredentials;
            
            Web web = clientContext.Web;
            clientContext.Load(web);
            clientContext.ExecuteQuery();
            
            Console.WriteLine($"Connected to site: {web.Title}");
        }
    }
}

内容的提问来源于stack exchange,提问作者ni37osllb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:08:35