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

VS2019中SSIS脚本组件使用RestSharp报错及GAC问题求助

问题解决方案

一、RestClient初始化失败的核心原因

你的目标框架是.NET Framework 4.7,但报错里的System.Text.Json.JsonSerializerOptions..ctor(System.Text.Json.JsonSerializerDefaults)构造函数,仅在**.NET Framework 4.8**及更高版本(或.NET Core 3.0+)中存在。你当前使用的RestSharp版本大概率依赖了这个高版本API,导致在4.7环境下无法找到对应方法。

解决步骤:

  1. 降级RestSharp版本:选择兼容.NET Framework 4.7的稳定版本,比如v106.15.0(该版本是最后一批全面支持.NET Framework 4.5+、且依赖旧版JSON处理组件而非高版本System.Text.Json的版本)。
  2. 调整NuGet依赖:在脚本组件项目中执行以下命令更换版本:
    Uninstall-Package RestSharp
    Install-Package RestSharp -Version 106.15.0
    
  3. 确认目标框架:右键脚本项目→属性→应用程序,确保目标框架确实设置为.NET Framework 4.7,避免误选更高版本。

二、GAC安装与查询的问题

你执行gacutil -i RestSharp.dll显示成功,但gacutil -l RestSharp.dll找不到程序集,问题出在这几点:

  • 查询命令格式错误:GAC查询不需要带.dll后缀,正确命令为:
    gacutil -l RestSharp
    
  • 架构不匹配:SSIS默认可能以64位运行,而VS自带的gacutil多为32位(路径通常是C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools),若要安装到64位GAC,需使用64位版本的gacutil(路径为C:\Program Files\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64)。
  • 强命名缺失:只有带强签名的程序集才能安装到GAC,若你使用的RestSharp.dll未强签名,即使gacutil -i显示成功,实际也不会写入GAC。降级到v106.15.0版本的RestSharp自带强签名,可正常完成GAC注册。

补充建议

若不想依赖GAC,可直接将RestSharp.dll及其依赖的DLL(旧版RestSharp依赖Newtonsoft.Json而非System.Text.Json)复制到SSIS运行时目录:

  • 32位环境:C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn
  • 64位环境:C:\Program Files\Microsoft SQL Server\150\DTS\Binn
    SSIS运行时会直接读取该目录下的依赖文件,无需GAC注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:31:23