将newtonsoft安装到全局程序集缓存,以便在SSIS脚本任务中使用



我正在使用newtonsoft dll解析SSIS脚本任务中的json数据。这在我的本地计算机上按预期工作,但当部署到SQL Server并从SQL Server运行时,作业抛出错误:

"调用的目标已抛出异常";

我正在尝试将newtonsoft dll安装到全局程序集缓存中。为了实现这一点,我必须将Newtonsoft安装到服务器上,例如它保存到C目录中。然后使用gautil将其安装到全局程序集缓存中。

C:Newtonsoft.Json.12.0.3libnet45Newtonsoft.Json.dll

gacutil /i Newtonsoft.Json.dll

在脚本任务C#代码引用dll如下?

static ScriptMain()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);           
}
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{          
string path = @"C:Newtonsoft.Json.12.0.3libnet45";
return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "Newtonsoft.Json.dll"));
}

如果使用反射,则不需要将其安装在GAC中,只需要确保DLL位于服务器上与代码中引用的路径相同的路径中即可

C:\Newtonsoft.Json.12.03\lib\net45\

最新更新