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

VS升级报错:Microsoft.SharePoint.Client不存在EventReceivers类型

问题定位

该报错和TokenHelper.cs中是否引入命名空间无关,核心原因是Visual Studio从2015升级到2017的过程中,自动重新解析了项目的SharePoint客户端对象模型(CSOM)程序集引用,替换成了和SharePoint 2013不匹配的版本。
SharePoint 2013版本的CSOM组件中,EventReceivers命名空间下的类型并不包含在通用的Microsoft.SharePoint.Client.dll内,且不同版本SharePoint对应的CSOM程序集有强签名校验,版本错配就会触发指定命名空间找不到的编译错误。

修复步骤
  • 清理无效引用
    打开项目引用列表,将所有名称以Microsoft.SharePoint.Client开头的已引用程序集全部移除,不要改动TokenHelper.cs等业务代码文件。
  • 手动添加适配SP2013的正确程序集
    不要使用VS全局程序集缓存(GAC)中自动匹配的高版本CSOM,手动浏览到本地SharePoint 2013 CSOM的默认安装路径:
    C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\
    选中以下三个dll添加到项目引用中:
    • Microsoft.SharePoint.Client.dll
    • Microsoft.SharePoint.Client.Runtime.dll
    • Microsoft.SharePoint.Client.EventReceivers.dll
      添加完成后逐个选中上述三个引用,在属性面板中将「特定版本」设置为True,「复制本地」设置为True,避免后续VS版本变动自动替换引用版本。
  • 校验项目目标框架
    打开项目属性面板,在应用程序配置页确认目标框架为**.NET Framework 4.5或4.5.2**,不要选择.NET Core或.NET 4.6及以上版本——SharePoint 2013 Provider Hosted App不兼容高版本.NET运行时,会间接导致程序集解析失败。
  • 清理缓存重新编译
    关闭Visual Studio,删除项目根目录下的bin、obj缓存文件夹,重新打开项目后执行生成操作,编译错误即可消除。

避坑提示:不要通过NuGet安装最新版的SharePointOnline.CSOM包,该包是适配SharePoint Online的版本,和本地SharePoint 2013的CSOM强签名不兼容,安装后会触发更多类型找不到的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:39:14