无法从SQL Server执行SSIS包求助:SharePoint程序集加载失败
核心原因
Visual Studio自带SharePoint客户端组件依赖,但SQL Server执行SSIS包的运行环境(SSIS服务或SQL代理账户)缺少对应版本的Microsoft.SharePoint.Client.Runtime及相关依赖DLL。
具体解决步骤
1. 安装对应版本的SharePoint客户端组件SDK
- 下载与报错版本匹配的SharePoint Online Client Components SDK(报错为15.0.0.0,对应SharePoint 2013/Online版本),直接安装到运行SSIS包的服务器上。
- 安装完成后,相关DLL会自动注册到系统全局程序集缓存(GAC),无需手动复制文件。
2. 手动部署DLL到SSIS运行目录(安装SDK无效时)
若服务器无法安装SDK,从本地Visual Studio环境中找到对应DLL:
- 路径一般为
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI - 复制以下两个核心DLL到SSIS服务的运行目录:
Microsoft.SharePoint.Client.dllMicrosoft.SharePoint.Client.Runtime.dll
- SSIS运行目录参考:
- SQL Server 2016及以后:
C:\Program Files\Microsoft SQL Server\130\DTS\Binn(130对应2016,140对应2017,以此类推) - 旧版本:
C:\Program Files\Microsoft SQL Server\120\DTS\Binn
- SQL Server 2016及以后:
3. 配置SSIS脚本任务的依赖(针对找不到References的情况)
SSIS项目的引用管理和普通.NET项目不同,操作如下:
- 打开包中的脚本任务/脚本组件,在脚本编辑器中打开项目资源管理器(快捷键Ctrl+Alt+L)
- 在项目资源管理器里右键点击References,选择添加引用,找到并添加
Microsoft.SharePoint.Client和Microsoft.SharePoint.Client.Runtime - 保存脚本后,确保脚本任务属性中
Embed Interop Types设置为True,重新生成SSIS包。
4. 检查执行账户权限
- 确保执行SSIS包的账户(SQL代理账户或手动执行账户)拥有DLL所在目录的读取权限
- 若使用SQL代理执行,代理账户需同时具备访问SharePoint的权限,以及读取SSIS包和依赖文件的权限
5. 验证DLL的GAC注册状态
打开管理员权限的命令提示符,执行以下命令检查是否已注册:
gacutil /l Microsoft.SharePoint.Client.Runtime
若未找到,手动注册:
gacutil /i "C:\你的DLL路径\Microsoft.SharePoint.Client.Runtime.dll"
内容的提问来源于stack exchange,提问作者Krichene
相关产品推荐
相关产品推荐

