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

SSIS脚本报错:命名空间不存在,NuGet包修复后问题反复

解决SSIS脚本任务中NuGet包引用失效问题

问题根源

SSIS的脚本任务不支持NuGet包的自动引用同步,即便通过NuGet安装了包,关闭脚本编辑器后引用会丢失,运行时也因找不到依赖DLL而失败。

具体解决步骤

1. 手动添加程序集引用

  • 打开脚本任务编辑器,进入「编辑脚本」界面
  • 在解决方案资源管理器中右键点击脚本项目 → 添加 → 引用
  • 切换到「浏览」标签页,找到NuGet包安装后的DLL路径:
    • System.IdentityModel.Tokens.Jwt的路径通常为项目目录\packages\System.IdentityModel.Tokens.Jwt.x.x.x\lib\net462(根据你的.NET版本和包版本调整)
    • System.Text.Json的路径类似项目目录\packages\System.Text.Json.x.x.x\lib\net462(解决JsonSerializer和JsonElement的报错)
  • 选中对应DLL后点击「确定」完成引用添加

2. 设置「复制本地」为True

  • 在引用列表中选中刚添加的System.IdentityModel.Tokens.Jwt和System.Text.Json
  • 在属性窗口中,将「复制本地」设置为True
  • 此操作会让编译后的DLL复制到SSIS包的输出目录,确保运行时能找到依赖

3. 补充命名空间引用

在脚本代码头部添加必要的using语句:

using System.Text.Json;
using System.IdentityModel.Tokens.Jwt;

4. 保存并验证

  • 编译脚本,确认无报错后关闭脚本编辑器
  • 运行SSIS包,测试脚本任务是否正常执行
  • 再次打开脚本编辑器,检查引用是否保留、代码是否无报错

额外注意事项

  • 若使用旧版SQL Server Data Tools(SSDT),需确保包的目标.NET版本与NuGet包支持的版本匹配(例如SSIS 2019对应.NET Framework 4.7.2)
  • 若问题仍存在,可尝试手动将DLL复制到SSIS运行时目录(通常为C:\Program Files\Microsoft SQL Server\150\DTS\Binn,根据SQL Server版本调整150为对应版本号)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:22:03